diff --git a/.github/workflows/benchmark.yaml b/.github/workflows/benchmark.yaml index 04802aabd..87fc96820 100644 --- a/.github/workflows/benchmark.yaml +++ b/.github/workflows/benchmark.yaml @@ -21,10 +21,7 @@ jobs: - name: Install dependencies run: | julia --project=benchmark -e 'using Pkg; - Pkg.rm("EpiAware"); - Pkg.resolve(); - Pkg.instantiate(); - Pkg.develop(path = "./EpiAware")' + Pkg.instantiate()' - name: Run benchmarks run: julia --project=benchmark -e 'using BenchmarkCI; BenchmarkCI.judge(; baseline = "origin/main", retune = true)' - name: Post results diff --git a/.gitignore b/.gitignore index 8ad444c64..58790f702 100644 --- a/.gitignore +++ b/.gitignore @@ -391,3 +391,5 @@ EpiAware/docs/src/examples/*.md EpiAware/docs/src/getting-started/tutorials/censored-obs.md */Manifest*.toml EpiAware/docs/Manifest*.toml + +!benchmark/Manifest.toml diff --git a/EpiAware/Project.toml b/EpiAware/Project.toml index 91561cb00..0b618be0d 100644 --- a/EpiAware/Project.toml +++ b/EpiAware/Project.toml @@ -17,6 +17,7 @@ LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" LogExpFunctions = "2ab3a3ac-af41-5b50-aa03-7779005ae688" MCMCChains = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" ManifoldDiff = "af67fdf4-a580-4b9f-bbec-742ef357defd" +OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Pathfinder = "b1d3bc72-d0e7-4279-b92f-7fa5d6d2d454" QuadGK = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" @@ -33,19 +34,20 @@ AdvancedHMC = "0.6" DataFramesMeta = "0.15" Distributions = "0.25" DocStringExtensions = "0.9" -DynamicPPL = "0.27, 0.28, 0.29, 0.30" +DynamicPPL = "0.30" FillArrays = "1.11" HybridArrays = "0.4.16" LinearAlgebra = ">= 1.9" LogExpFunctions = "0.3" MCMCChains = "6.0" ManifoldDiff = "0.3.10" -Pathfinder = "0.8" +OrdinaryDiffEq = "6.89.0" +Pathfinder = "0.9" QuadGK = "2.9" -Random = ">= 1.9" +Random = "1.11" Reexport = "1.2" -SparseArrays = "1.10" -Statistics = "1.10" +SparseArrays = "1.11" +Statistics = "1.11" Tables = "1.11" -Turing = "0.32, 0.33, 0.34" -julia = ">= 1.9" +Turing = "0.35" +julia = "1.11" diff --git a/EpiAware/src/EpiAwareUtils/prefix_submodel.jl b/EpiAware/src/EpiAwareUtils/prefix_submodel.jl index 85d95bd68..ccf85800d 100644 --- a/EpiAware/src/EpiAwareUtils/prefix_submodel.jl +++ b/EpiAware/src/EpiAwareUtils/prefix_submodel.jl @@ -20,7 +20,7 @@ submodel = prefix_submodel(FixedIntercept(0.1), generate_latent, string(1), 2) We can now draw a sample from the submodel. -```julia +```@example rand(submodel) ``` " diff --git a/EpiAware/src/EpiInfModels/EpiInfModels.jl b/EpiAware/src/EpiInfModels/EpiInfModels.jl index 22bc6498e..0c08a120e 100644 --- a/EpiAware/src/EpiInfModels/EpiInfModels.jl +++ b/EpiAware/src/EpiInfModels/EpiInfModels.jl @@ -6,10 +6,15 @@ module EpiInfModels using ..EpiAwareBase using ..EpiAwareUtils -using Turing, Distributions, DocStringExtensions, LinearAlgebra, LogExpFunctions +using LogExpFunctions: xexpy + +using Turing, Distributions, DocStringExtensions, LinearAlgebra, OrdinaryDiffEq + +#Export parameter helpers +export EpiData #Export models -export EpiData, DirectInfections, ExpGrowthRate, Renewal +export DirectInfections, ExpGrowthRate, Renewal, ODEProcess #Export functions export R_to_r, r_to_R, expected_Rt @@ -20,6 +25,7 @@ include("DirectInfections.jl") include("ExpGrowthRate.jl") include("RenewalSteps.jl") include("Renewal.jl") +include("ODEProcess.jl") include("utils.jl") end diff --git a/EpiAware/src/EpiInfModels/ODEProcess.jl b/EpiAware/src/EpiInfModels/ODEProcess.jl new file mode 100644 index 000000000..ab7cc6510 --- /dev/null +++ b/EpiAware/src/EpiInfModels/ODEProcess.jl @@ -0,0 +1,306 @@ +@doc raw""" +A structure representing an infection process modeled by an Ordinary Differential Equation (ODE). +At a high level, an `ODEProcess` struct object combines: + +- An `AbstractTuringParamModel` which defines the ODE model in terms of `OrdinaryDiffEq` types, + the parameters of the ODE model and a method to generate the parameters. +- A technique for solving and interpreting the ODE model using the `SciML` ecosystem. This includes + the solver used in the ODE solution, keyword arguments to send to the solver and a function + to map the `ODESolution` solution object to latent infections. + +# Constructors +- `ODEProcess(prob::ODEProblem; ts, solver, sol2infs)`: Create an `ODEProcess` +object with the ODE problem `prob`, time points `ts`, solver `solver`, and function `sol2infs`. + +# Predefined ODE models +Two basic ODE models are provided in the `EpiAware` package: `SIRParams` and `SEIRParams`. +In both cases these are defined in terms of the proportions of the population in each compartment +of the SIR and SEIR models respectively. + +## SIR model + +```math +\begin{aligned} +\frac{dS}{dt} &= -\beta SI \\ +\frac{dI}{dt} &= \beta SI - \gamma I \\ +\frac{dR}{dt} &= \gamma I +\end{aligned} +``` +Where `S` is the proportion of the population that is susceptible, `I` is the proportion of the +population that is infected and `R` is the proportion of the population that is recovered. The +parameters are the infectiousness `β` and the recovery rate `γ`. + +```jldoctest sirexample; output = false +using EpiAware, OrdinaryDiffEq, Distributions + +# Create an instance of SIRParams +sirparams = SIRParams( + tspan = (0.0, 100.0), + infectiousness = LogNormal(log(0.3), 0.05), + recovery_rate = LogNormal(log(0.1), 0.05), + initial_prop_infected = Beta(1, 99) +) +nothing + +# output + +``` + +## SEIR model + +```math +\begin{aligned} +\frac{dS}{dt} &= -\beta SI \\ +\frac{dE}{dt} &= \beta SI - \alpha E \\ +\frac{dI}{dt} &= \alpha E - \gamma I \\ +\frac{dR}{dt} &= \gamma I +\end{aligned} +``` +Where `S` is the proportion of the population that is susceptible, `E` is the proportion of the +population that is exposed, `I` is the proportion of the population that is infected and `R` is +the proportion of the population that is recovered. The parameters are the infectiousness `β`, +the incubation rate `α` and the recovery rate `γ`. + +```jldoctest; output = false +using EpiAware, OrdinaryDiffEq, Distributions, Random +Random.seed!(1234) + +# Create an instance of SIRParams +seirparams = SEIRParams( + tspan = (0.0, 100.0), + infectiousness = LogNormal(log(0.3), 0.05), + incubation_rate = LogNormal(log(0.1), 0.05), + recovery_rate = LogNormal(log(0.1), 0.05), + initial_prop_infected = Beta(1, 99) +) +nothing + +# output + +``` + +# Usage example with `ODEProcess` and predefined SIR model + +In this example we define an `ODEProcess` object using the predefined `SIRParams` model from +above. We then generate latent infections using the `generate_latent_infs` function, and refit +the model using a `Turing` model. + +We assume that the latent infections are observed with a Poisson likelihood around their +ODE model prediction. The population size is `N = 1000`, which we put into the `sol2infs` function, +which maps the ODE solution to the number of infections. Recall that the `EpiAware` default SIR +implementation assumes the model is in density/proportion form. Also, note that since the `sol2infs` +function is a link function that maps the ODE solution to the expected number of infections we also +apply the `LogExpFunctions.softplus` function to ensure that the expected number of infections is non-negative. +Note that the `softplus` function is a smooth approximation to the ReLU function `x -> max(0, x)`. +The utility of this approach is that small negative output from the ODE solver (e.g. ~ -1e-10) will be +mapped to small positive values, without needing to use strict positivity constraints in the model. + +First, we define the `ODEProcess` object which combines the SIR model with the `sol2infs` link +function and the solver options. + +```jldoctest sirexample; output = false +using Turing, LogExpFunctions +N = 1000.0 + +sir_process = ODEProcess( + params = sirparams, + sol2infs = sol -> softplus.(N .* sol[2, :]), + solver_options = Dict(:verbose => false, :saveat => 1.0) +) +nothing + +# output + +``` + +Second, we define a `PoissionError` observation model for linking the the number of infections. + +```jldoctest sirexample; output = false +pois_obs = PoissonError() +nothing + +# output + +``` + +Next, we create a `Turing` model for the full generative process: this solves the ODE model for +the latent infections and then samples the observed infections from a Poisson distribution with this +as the average. + +NB: The `nothing` argument is a dummy latent process, e.g. a log-Rt time series, that is not +used in the SIR model, but might be used in other models. + +```jldoctest sirexample; output = false +@model function fit_ode_model(data) + @submodel I_t = generate_latent_infs(sir_process, nothing) + @submodel y_t = generate_observations(pois_obs, data, I_t) + + return y_t +end +nothing + +# output + +``` + +We can generate some test data from the model by passing `missing` as the argument to the model. +This tells `Turing` that there is no data to condition on, so it will sample from the prior parameters +and then generate infections. In this case, we do it in a way where we cache the sampled parameters +as `θ` for later use. + +```jldoctest sirexample; output = false +# Sampled parameters +gen_mdl = fit_ode_model(missing) +θ = rand(gen_mdl) +test_data = (gen_mdl | θ)() +nothing + +# output + +``` + +Now, we can refit the model but this time we condition on the test data. We suppress the +output of the sampling process to keep the output clean, but you can remove the `@suppress` macro. + +```jldoctest sirexample; output = false +using Suppressor +inference_mdl = fit_ode_model(test_data) +chn = Suppressor.@suppress sample(inference_mdl, NUTS(), 2_000) +summarize(chn) +nothing + +# output + +``` + +We can compare the summarized chain to the sampled parameters in `θ` to see that the model is +fitting the data well and recovering a credible interval containing the true parameters. + +# Custom ODE models + +To define a custom ODE model, you need to define: + +- Some `CustomModel <: AbstractTuringLatentModel` struct + that contains the ODE problem as a field called `prob`, as well as sufficient fields to + define or sample the parameters of the ODE model. +- A method for `EpiAwareBase.generate_latent(params::CustomModel, Z_t)` that generates the + initial condition and parameters of the ODE model, potentially conditional on a sample from a latent process `Z_t`. + This method must return a `Tuple` `(u0, p)` where `u0` is the initial condition and `p` is the parameters. + +Here is an example of a simple custom ODE model for _specified_ exponential growth: + +```jldoctest customexample; output = false +using EpiAware, Turing, OrdinaryDiffEq +# Define a simple exponential growth model for testing +function expgrowth(du, u, p, t) + du[1] = p[1] * u[1] +end + +r = log(2) / 7 # Growth rate corresponding to 7 day doubling time + +# Define the ODE problem using SciML +prob = ODEProblem(expgrowth, [1.0], (0.0, 10.0), [r]) + +# Define the custom parameters struct +struct CustomModel <: AbstractTuringLatentModel + prob::ODEProblem + r::Float64 + u0::Float64 +end +custom_ode = CustomModel(prob, r, 1.0) + +# Define the custom generate_latent function +@model function EpiAwareBase.generate_latent(params::CustomModel, n) + return ([params.u0], [params.r]) +end +nothing + +# output + +``` + +This model is not random! But we can still use it to generate latent infections. + +```jldoctest customexample; output = false +# Define the ODEProcess +expgrowth_model = ODEProcess( + params = custom_ode, + sol2infs = sol -> sol[1, :] +) +infs = generate_latent_infs(expgrowth_model, nothing)() +nothing + +# output + +``` +""" +@kwdef struct ODEProcess{ + P <: AbstractTuringLatentModel, S, F <: Function, D <: + Union{Dict, NamedTuple}} <: + EpiAwareBase.AbstractTuringEpiModel + "The ODE problem and parameters, where `P` is a subtype of `AbstractTuringLatentModel`." + params::P + "The solver used for the ODE problem. Default is `AutoVern7(Rodas5())`, which is an auto + switching solver aimed at medium/low tolerances." + solver::S = AutoVern7(Rodas5()) + "A function that maps the solution object of the ODE to infection counts." + sol2infs::F + "The extra solver options for the ODE problem. Can be either a `Dict` or a `NamedTuple` + containing the solver options." + solver_options::D = Dict(:verbose => false, :saveat => 1.0) +end + +@doc raw""" +Implement the `generate_latent_infs` function for the `ODEProcess` model. + +This function remakes the ODE problem with the provided initial conditions and parameters, + solves it using the specified solver, and then transforms the solution into latent infections + using the `sol2infs` function. + +# Example usage with predefined SIR model + +In this example we define an `ODEProcess` object using the predefined `SIRParams` model and +generate an expected infection time series using SIR model parameters sampled from their priors. + +```jldoctest; output = false +using EpiAware, OrdinaryDiffEq, Distributions, Turing, LogExpFunctions + +# Create an instance of SIRParams +sirparams = SIRParams( + tspan = (0.0, 100.0), + infectiousness = LogNormal(log(0.3), 0.05), + recovery_rate = LogNormal(log(0.1), 0.05), + initial_prop_infected = Beta(1, 99) +) + +#Population size + +N = 1000.0 + +sir_process = ODEProcess( + params = sirparams, + sol2infs = sol -> softplus.(N .* sol[2, :]), + solver_options = Dict(:verbose => false, :saveat => 1.0) +) + +generated_It = generate_latent_infs(sir_process, nothing)() +nothing + +# output + +``` + +""" +@model function EpiAwareBase.generate_latent_infs(epi_model::ODEProcess, Z_t) + prob, solver, sol2infs, solver_options = epi_model.params.prob, + epi_model.solver, epi_model.sol2infs, epi_model.solver_options + n = isnothing(Z_t) ? 0 : size(Z_t, 1) + + @submodel u0, p = generate_latent(epi_model.params, n) + + _prob = remake(prob; u0 = u0, p = p) + sol = solve(_prob, solver; solver_options...) + I_t = sol2infs(sol) + + return I_t +end diff --git a/EpiAware/src/EpiLatentModels/EpiLatentModels.jl b/EpiAware/src/EpiLatentModels/EpiLatentModels.jl index 50a4fd251..214f88bab 100644 --- a/EpiAware/src/EpiLatentModels/EpiLatentModels.jl +++ b/EpiAware/src/EpiLatentModels/EpiLatentModels.jl @@ -11,10 +11,14 @@ using LogExpFunctions: softmax using FillArrays: Fill -using Turing, Distributions, DocStringExtensions, LinearAlgebra +using Turing, Distributions, DocStringExtensions, LinearAlgebra, SparseArrays, + OrdinaryDiffEq #Export models -export FixedIntercept, Intercept, IDD, RandomWalk, AR, MA, HierarchicalNormal +export FixedIntercept, Intercept, IID, RandomWalk, AR, MA, HierarchicalNormal + +#Export ODE definitions +export SIRParams, SEIRParams # Export tools for manipulating latent models export CombineLatentModels, ConcatLatentModels, BroadcastLatentModel @@ -32,12 +36,16 @@ export DiffLatentModel, TransformLatentModel, PrefixLatentModel, RecordExpectedL export define_arma, define_arima include("docstrings.jl") +include("utils.jl") include("models/Intercept.jl") -include("models/IDD.jl") +include("models/IID.jl") include("models/RandomWalk.jl") include("models/AR.jl") include("models/MA.jl") include("models/HierarchicalNormal.jl") +include("models/Null.jl") +include("odemodels/SIRParams.jl") +include("odemodels/SEIRParams.jl") include("modifiers/DiffLatentModel.jl") include("modifiers/TransformLatentModel.jl") include("modifiers/PrefixLatentModel.jl") @@ -49,6 +57,5 @@ include("manipulators/broadcast/rules.jl") include("manipulators/broadcast/helpers.jl") include("combinations/define_arma.jl") include("combinations/define_arima.jl") -include("utils.jl") end diff --git a/EpiAware/src/EpiLatentModels/models/HierarchicalNormal.jl b/EpiAware/src/EpiLatentModels/models/HierarchicalNormal.jl index 42d2f5b5b..109369a2f 100644 --- a/EpiAware/src/EpiLatentModels/models/HierarchicalNormal.jl +++ b/EpiAware/src/EpiLatentModels/models/HierarchicalNormal.jl @@ -47,7 +47,7 @@ Generate latent variables from the hierarchical normal distribution. " @model function EpiAwareBase.generate_latent(obs_model::HierarchicalNormal, n) std ~ obs_model.std_prior - @submodel ϵ_t = generate_latent(IDD(Normal()), n) + @submodel ϵ_t = generate_latent(IID(Normal()), n) η_t = obs_model.mean .+ std .* ϵ_t return η_t diff --git a/EpiAware/src/EpiLatentModels/models/IDD.jl b/EpiAware/src/EpiLatentModels/models/IID.jl similarity index 56% rename from EpiAware/src/EpiLatentModels/models/IDD.jl rename to EpiAware/src/EpiLatentModels/models/IID.jl index b0ca2f683..55982faec 100644 --- a/EpiAware/src/EpiLatentModels/models/IDD.jl +++ b/EpiAware/src/EpiLatentModels/models/IID.jl @@ -3,7 +3,7 @@ Model latent process ``\epsilon_t`` as independent and identically distributed r ## Mathematical specification -The IDD process ``\epsilon_t`` is specified as a sequence of independent and identically distributed random variables, +The IID process ``\epsilon_t`` is specified as a sequence of independent and identically distributed random variables, ```math \epsilon_t \sim \text{Prior}, \quad t = 1, 2, \ldots @@ -13,41 +13,41 @@ where Prior is the specified distribution. ## Constructors -- `IDD(prior::Distribution = Normal(0, 1))`: Create an IDD model with the specified prior distribution. +- `IID(prior::Distribution = Normal(0, 1))`: Create an IID model with the specified prior distribution. ## Examples -```jldoctest IDD; filter = r\"\b\d+(\.\d+)?\b\" => \"*\" +```jldoctest IID; filter = r\"\b\d+(\.\d+)?\b\" => \"*\" using EpiAware, Distributions -model = IDD(Normal(0, 1)) +model = IID(Normal(0, 1)) # output -IDD{Normal{Float64}}(ϵ_t = Normal{Float64}(μ=0.0, σ=1.0)) +IID{Normal{Float64}}(ϵ_t = Normal{Float64}(μ=0.0, σ=1.0)) ``` -```jldoctest IDD; filter = r\"\b\d+(\.\d+)?\b\" => \"*\" +```jldoctest IID; filter = r\"\b\d+(\.\d+)?\b\" => \"*\" idd = generate_latent(model, 10) idd() # output ``` " -@kwdef struct IDD{D <: Sampleable} <: AbstractTuringLatentModel +@kwdef struct IID{D <: Sampleable} <: AbstractTuringLatentModel ϵ_t::D = Normal(0, 1) end @doc raw" - Generate latent variables from the IDD (Independent and Identically Distributed) model. + Generate latent variables from the IID (Independent and Identically Distributed) model. # Arguments -- `model::IDD`: The IDD model. +- `model::IID`: The IID model. - `n`: Number of latent variables to generate. # Returns - `ϵ_t`: Generated latent variables. " -@model function EpiAwareBase.generate_latent(model::IDD, n) +@model function EpiAwareBase.generate_latent(model::IID, n) ϵ_t ~ filldist(model.ϵ_t, n) return ϵ_t end diff --git a/EpiAware/src/EpiLatentModels/models/MA.jl b/EpiAware/src/EpiLatentModels/models/MA.jl index 8420f549b..b48f29243 100644 --- a/EpiAware/src/EpiLatentModels/models/MA.jl +++ b/EpiAware/src/EpiLatentModels/models/MA.jl @@ -2,7 +2,7 @@ The moving average (MA) model struct. # Constructors -- `MA(θ::Distribution, σ::Distribution; q::Int = 1, ϵ::AbstractTuringLatentModel = IDD(Normal()))`: Constructs an MA model with the specified prior distributions. +- `MA(θ::Distribution, σ::Distribution; q::Int = 1, ϵ::AbstractTuringLatentModel = IID(Normal()))`: Constructs an MA model with the specified prior distributions. - `MA(; θ::Vector{C} = [truncated(Normal(0.0, 0.05), -1, 1)], ϵ::AbstractTuringLatentModel = HierarchicalNormal) where {C <: Distribution}`: Constructs an MA model with the specified prior distributions. @@ -11,7 +11,7 @@ The moving average (MA) model struct. # Parameters - `θ`: Prior distribution for the MA coefficients. For MA(q), this should be a vector of q distributions or a multivariate distribution of dimension q. - `q`: Order of the MA model, i.e., the number of lagged error terms. -- `ϵ_t`: Distribution of the error term, typically standard normal. Defaults to `IDD(Normal())`. +- `ϵ_t`: Distribution of the error term, typically standard normal. Defaults to `IID(Normal())`. # Examples diff --git a/EpiAware/src/EpiLatentModels/models/Null.jl b/EpiAware/src/EpiLatentModels/models/Null.jl new file mode 100644 index 000000000..064d43320 --- /dev/null +++ b/EpiAware/src/EpiLatentModels/models/Null.jl @@ -0,0 +1,24 @@ +@doc raw" +A null model struct. This struct is used to indicate that no latent variables are to be generated. +" +struct Null <: AbstractTuringLatentModel end + +@doc raw" +Generates `nothing` as latent variables for the given `latent_model` of type `Null`. + +# Example +```jldoctest +using EpiAware +null = Null() +null_mdl = generate_latent(null, 10) +isnothing(null_mdl()) + +# output + +true + +``` +" +@model function EpiAwareBase.generate_latent(latent_model::Null, n) + return nothing +end diff --git a/EpiAware/src/EpiLatentModels/models/RandomWalk.jl b/EpiAware/src/EpiLatentModels/models/RandomWalk.jl index 2592eb44e..72514e312 100644 --- a/EpiAware/src/EpiLatentModels/models/RandomWalk.jl +++ b/EpiAware/src/EpiLatentModels/models/RandomWalk.jl @@ -13,7 +13,7 @@ Z_t = Z_0 + \sigma \sum_{i = 1}^t \epsilon_t Constructing a random walk requires specifying: - An `init_prior` as a prior for ``Z_0``. Default is `Normal()`. - A `std_prior` for ``\sigma``. The default is HalfNormal with a mean of 0.25. -- An `ϵ_t` prior for the white noise sequence. The default is `IDD(Normal())`. +- An `ϵ_t` prior for the white noise sequence. The default is `IID(Normal())`. ## Constructors diff --git a/EpiAware/src/EpiLatentModels/odemodels/SEIRParams.jl b/EpiAware/src/EpiLatentModels/odemodels/SEIRParams.jl new file mode 100644 index 000000000..3a5f2ac7b --- /dev/null +++ b/EpiAware/src/EpiLatentModels/odemodels/SEIRParams.jl @@ -0,0 +1,183 @@ +@doc raw""" +Internal function for the vector field of a basic SEIR model written in density/per-capita +form. The function is used to define the ODE problem for the SIR model. +""" +function _seir_vf(du, u, p, t) + S, E, I, R = u + β, α, γ = p + du[1] = -β * S * I + du[2] = β * S * I - α * E + du[3] = α * E - γ * I + du[4] = γ * I + return nothing +end + +@doc raw""" +Sparse Jacobian matrix prototype for the basic SEIR model written in density/per-capita form. +""" +const _seir_jac_prototype = sparse([1.0 0.0 1.0 0.0; + 1.0 1.0 1.0 0.0; + 0.0 1.0 1.0 0.0; + 0.0 0.0 1.0 0.0]) + +@doc raw""" +Internal function for the Jacobian of the basic SEIR model written in density/per-capita +form. The function is used to define the ODE problem for the SEIR model. The Jacobian +is used to speed up the solution of the ODE problem when using a stiff solver. +""" +function _seir_jac(J, u, p, t) + S, E, I, R = u + β, α, γ = p + J[1, 1] = -β * I + J[1, 3] = -β * S + J[2, 1] = β * I + J[2, 2] = -α + J[2, 3] = β * S + J[3, 2] = α + J[3, 3] = -γ + J[4, 3] = γ + nothing +end + +@doc raw""" +Internal function for the ODE function of the basic SIR model written in density/per-capita +form. The function passes vector field and Jacobian functions to the ODE solver. +""" +_seir_function = ODEFunction(_seir_vf; jac = _seir_jac) + +@doc raw""" +A structure representing the SEIR (Susceptible-Exposed-Infectious-Recovered) model and priors for the +infectiousness and recovery rate parameters. + +# Constructors +- `SEIRParams(; tspan, infectiousness::Distribution, incubation_rate::Distribution, + recovery_rate::Distribution, initial_prop_infected::Distribution)` : +Construct a `SEIRParams` object with the specified time span for ODE solving, infectiousness +prior, incubation rate prior and recovery rate prior. + +## SEIR model + +```math +\begin{aligned} +\frac{dS}{dt} &= -\beta SI \\ +\frac{dE}{dt} &= \beta SI - \alpha E \\ +\frac{dI}{dt} &= \alpha E - \gamma I \\ +\frac{dR}{dt} &= \gamma I +\end{aligned} +``` +Where `S` is the proportion of the population that is susceptible, `E` is the proportion of the +population that is exposed, `I` is the proportion of the population that is infected and `R` is +the proportion of the population that is recovered. The parameters are the infectiousness `β`, +the incubation rate `α` and the recovery rate `γ`. + +```jldoctest; output = false +using EpiAware, OrdinaryDiffEq, Distributions + +# Create an instance of SIRParams +seirparams = SEIRParams( + tspan = (0.0, 30.0), + infectiousness = LogNormal(log(0.3), 0.05), + incubation_rate = LogNormal(log(0.1), 0.05), + recovery_rate = LogNormal(log(0.1), 0.05), + initial_prop_infected = Beta(1, 99) +) +nothing + +# output + +``` +""" +struct SEIRParams{ + P <: ODEProblem, D <: Sampleable, E <: Sampleable, F <: Sampleable, G <: Sampleable} <: + AbstractTuringLatentModel + "The ODE problem instance for the SIR model." + prob::P + "Prior distribution for the infectiousness parameter." + infectiousness::D + "Prior distribution for the incubation rate parameter." + incubation_rate::E + "Prior distribution for the recovery rate parameter." + recovery_rate::F + "Prior distribution for initial proportion of the population that is infected." + initial_prop_infected::G +end + +function SEIRParams(; + tspan, infectiousness::Distribution, incubation_rate::Distribution, + recovery_rate::Distribution, initial_prop_infected::Distribution) + seir_prob = ODEProblem(_seir_function, [0.99, 0.05, 0.05, 0.0], tspan) + return SEIRParams{ + typeof(seir_prob), typeof(infectiousness), typeof(incubation_rate), + typeof(recovery_rate), typeof(initial_prop_infected)}( + seir_prob, infectiousness, incubation_rate, + recovery_rate, initial_prop_infected) +end + +@doc raw""" +Generates the initial parameters and initial conditions for the basic SEIR model. + +## SEIR model + +```math +\begin{aligned} +\frac{dS}{dt} &= -\beta SI \\ +\frac{dE}{dt} &= \beta SI - \alpha E \\ +\frac{dI}{dt} &= \alpha E - \gamma I \\ +\frac{dR}{dt} &= \gamma I +\end{aligned} +``` +Where `S` is the proportion of the population that is susceptible, `E` is the proportion of the +population that is exposed, `I` is the proportion of the population that is infected and `R` is +the proportion of the population that is recovered. The parameters are the infectiousness `β`, +the incubation rate `α` and the recovery rate `γ`. + +## Initial conditions + +For this version of the SEIR model we sample the initial proportion of the population that is +_infected_ (exposed or infectious). The proportion of the infected group that is exposed is +`α / (α + γ)` and the proportion of the infected group that is infectious is `γ / (α + γ)`. The +reason for this is that these are the equilibrium proportions in a constant incidence environment. + +# Example + +```jldoctest; output = false +using EpiAware, OrdinaryDiffEq, Distributions + +# Create an instance of SIRParams +seirparams = SEIRParams( + tspan = (0.0, 30.0), + infectiousness = LogNormal(log(0.3), 0.05), + incubation_rate = LogNormal(log(0.1), 0.05), + recovery_rate = LogNormal(log(0.1), 0.05), + initial_prop_infected = Beta(1, 99) +) + +seirparam_mdl = generate_latent(seirparams, nothing) + +# Sample the parameters of SEIR model +sampled_params = rand(seirparam_mdl) +nothing + +# output + +``` + +# Returns + A tuple `(u0, p)` where: + - `u0`: A vector representing the initial state of the system `[S₀, E₀, I₀, R₀]` where `S₀` + is the initial proportion of susceptible individuals, `E₀` is the initial proportion of exposed + individuals,`I₀` is the initial proportion of infected individuals, and `R₀` is the initial + proportion of recovered individuals. + - `p`: A vector containing the parameters `[β, α, γ]` where `β` is the infectiousness rate, + `α` is the incubation rate, and `γ` is the recovery rate. +""" +@model function EpiAwareBase.generate_latent(params::SEIRParams, n) + β ~ params.infectiousness + α ~ params.incubation_rate + γ ~ params.recovery_rate + initial_infs ~ params.initial_prop_infected + + u0 = [1.0 - initial_infs, initial_infs * γ / (α + γ), initial_infs * α / (α + γ), 0.0] + p = [β, α, γ] + return (u0, p) +end diff --git a/EpiAware/src/EpiLatentModels/odemodels/SIRParams.jl b/EpiAware/src/EpiLatentModels/odemodels/SIRParams.jl new file mode 100644 index 000000000..e13c4aaa5 --- /dev/null +++ b/EpiAware/src/EpiLatentModels/odemodels/SIRParams.jl @@ -0,0 +1,158 @@ +@doc raw""" +Internal function for the vector field of a basic SIR model written in density/per-capita +form. The function is used to define the ODE problem for the SIR model. +""" +function _sir_vf(du, u, p, t) + S, I, R = u + β, γ = p + du[1] = -β * S * I + du[2] = β * S * I - γ * I + du[3] = γ * I + return nothing +end + +@doc raw""" +Sparse Jacobian matrix prototype for the basic SIR model written in density/per-capita form. +""" +const _sir_jac_prototype = sparse([1.0 1.0 0.0; + 1.0 1.0 0.0; + 0.0 1.0 0.0]) + +@doc raw""" +Internal function for the Jacobian of the basic SIR model written in density/per-capita +form. The function is used to define the ODE problem for the SIR model. The Jacobian +is used to speed up the solution of the ODE problem when using a stiff solver. +""" +function _sir_jac(J, u, p, t) + S, I, R = u + β, γ = p + J[1, 1] = -β * I + J[1, 2] = -β * S + J[2, 1] = β * I + J[2, 2] = β * S - γ + J[3, 2] = γ + nothing +end + +@doc raw""" +Internal function for the ODE function of the basic SIR model written in density/per-capita +form. The function passes vector field and Jacobian functions to the ODE solver. +""" +_sir_function = ODEFunction(_sir_vf; jac = _sir_jac) + +@doc raw""" +A structure representing the SIR (Susceptible-Infectious-Recovered) model and priors for the +infectiousness and recovery rate parameters. + +# Constructors +- `SIRParams(; tspan, + infectiousness::Distribution, + recovery_rate::Distribution, + initial_prop_infected::Distribution)` : +Construct an `SIRParams` object with the specified time span for ODE solving, infectiousness +prior, and recovery rate prior. + +## SIR model + +```math +\begin{aligned} +\frac{dS}{dt} &= -\beta SI \\ +\frac{dI}{dt} &= \beta SI - \gamma I \\ +\frac{dR}{dt} &= \gamma I +\end{aligned} +``` +Where `S` is the proportion of the population that is susceptible, `I` is the proportion of the +population that is infected and `R` is the proportion of the population that is recovered. The +parameters are the infectiousness `β` and the recovery rate `γ`. + +# Example + +```jldoctest; output = false + using EpiAware, OrdinaryDiffEq, Distributions + +# Create an instance of SIRParams +sirparams = SIRParams( + tspan = (0.0, 30.0), + infectiousness = LogNormal(log(0.3), 0.05), + recovery_rate = LogNormal(log(0.1), 0.05), + initial_prop_infected = Beta(1, 99) +) +nothing + +# output + +``` +""" +struct SIRParams{P <: ODEProblem, D <: Sampleable, E <: Sampleable, F <: Sampleable} <: + AbstractTuringLatentModel + "The ODE problem instance for the SIR model." + prob::P + "Prior distribution for the infectiousness parameter." + infectiousness::D + "Prior distribution for the recovery rate parameter." + recovery_rate::E + "Prior distribution for initial proportion of the population that is infected." + initial_prop_infected::F +end + +function SIRParams(; + tspan, infectiousness::Distribution, recovery_rate::Distribution, + initial_prop_infected::Distribution) + sir_prob = ODEProblem(_sir_function, [0.99, 0.01, 0.0], tspan) + return SIRParams{typeof(sir_prob), typeof(infectiousness), + typeof(recovery_rate), typeof(initial_prop_infected)}( + sir_prob, infectiousness, recovery_rate, initial_prop_infected) +end + +@doc raw""" +Generates the initial parameters and initial conditions for the basic SIR model. + +## SIR model + +```math +\begin{aligned} +\frac{dS}{dt} &= -\beta SI \\ +\frac{dI}{dt} &= \beta SI - \gamma I \\ +\frac{dR}{dt} &= \gamma I +\end{aligned} +``` +Where `S` is the proportion of the population that is susceptible, `I` is the proportion of the +population that is infected and `R` is the proportion of the population that is recovered. The +parameters are the infectiousness `β` and the recovery rate `γ`. + +# Example + +```jldoctest; output = false +using EpiAware, OrdinaryDiffEq, Distributions + +# Create an instance of SIRParams +sirparams = SIRParams( + tspan = (0.0, 30.0), + infectiousness = LogNormal(log(0.3), 0.05), + recovery_rate = LogNormal(log(0.1), 0.05), + initial_prop_infected = Beta(1, 99) +) + +sirparam_mdl = generate_latent(sirparams, nothing) + +#sample the parameters of SIR model +sampled_params = rand(sirparam_mdl) +nothing + +# output + +``` + +# Returns +- A tuple `(u0, p)` where: + - `u0`: A vector representing the initial state of the system `[S₀, I₀, R₀]` where `S₀` is the initial proportion of susceptible individuals, `I₀` is the initial proportion of infected individuals, and `R₀` is the initial proportion of recovered individuals. + - `p`: A vector containing the parameters `[β, γ]` where `β` is the infectiousness rate and `γ` is the recovery rate. +""" +@model function EpiAwareBase.generate_latent(params::SIRParams, n) + β ~ params.infectiousness + γ ~ params.recovery_rate + I₀ ~ params.initial_prop_infected + u0 = [1.0 - I₀, I₀, 0.0] + p = [β, γ] + return (u0, p) +end diff --git a/EpiAware/src/EpiLatentModels/utils.jl b/EpiAware/src/EpiLatentModels/utils.jl index c4f1558ce..e0f882ca8 100644 --- a/EpiAware/src/EpiLatentModels/utils.jl +++ b/EpiAware/src/EpiLatentModels/utils.jl @@ -1,3 +1,10 @@ +""" +Internal function to expand a vector of distributions into a product distribution. + +## Implementation note +If all distributions in the input vector `dist` are the same, it returns a filled distribution using `filldist`. +Otherwise, it returns an array distribution using `arraydist`. +""" function _expand_dist(dist::Vector{D} where {D <: Distribution}) d = length(dist) product_dist = all(first(dist) .== dist) ? diff --git a/EpiAware/test/EpiAwareUtils/generate_epiware.jl b/EpiAware/test/EpiAwareUtils/generate_epiware.jl index 0cbeb0bf5..b2a7ac579 100644 --- a/EpiAware/test/EpiAwareUtils/generate_epiware.jl +++ b/EpiAware/test/EpiAwareUtils/generate_epiware.jl @@ -8,9 +8,8 @@ #Define the epi_model epi_model = DirectInfections(data, Normal()) - #Define the latent process model - rwp = RandomWalk(Normal(0.0, 1.0), - truncated(Normal(0.0, 0.05), 0.0, Inf)) + #Define the latent process model using defaults + rwp = RandomWalk() #Define the observation model delay_distribution = Gamma(2.0, 5 / 2) @@ -38,7 +37,7 @@ end @testitem "`generate_epiaware` with Exp growth rate and RW latent process runs" begin using Distributions, Turing, DynamicPPL # Define test inputs - y_t = missing# rand(1:10, 365) # Data will be generated from the model + y_t = missing # Data will be generated from the model data = EpiData([0.2, 0.3, 0.5], exp) #Define the epi_model @@ -46,9 +45,10 @@ end #Define the latent process model r_3 = log(2) / 3.0 - rwp = RandomWalk( - truncated(Normal(0.0, r_3 / 3), -r_3, r_3), # 3 day doubling time at 3 sigmas in prior - truncated(Normal(0.0, 0.01), 0.0, 0.1)) + init_prior = truncated(Normal(0.0, r_3 / 3), -r_3, r_3)# initial 3 day doubling time at 3 sigmas in prior + step_size_dist = HierarchicalNormal(std_prior = truncated(Normal(0.0, 0.01), 0.0, 0.1)) + rwp = RandomWalk(init_prior = init_prior, + ϵ_t = step_size_dist) #Define the observation model - no delay model time_horizon = 5 @@ -83,9 +83,10 @@ end #Define the latent process model r_3 = log(2) / 3.0 - rwp = RandomWalk( - truncated(Normal(0.0, r_3 / 3), -r_3, r_3), # 3 day doubling time at 3 sigmas in prior - truncated(Normal(0.0, 0.01), 0.0, 0.1)) + init_prior = truncated(Normal(0.0, r_3 / 3), -r_3, r_3)# initial 3 day doubling time at 3 sigmas in prior + step_size_dist = HierarchicalNormal(std_prior = truncated(Normal(0.0, 0.01), 0.0, 0.1)) + rwp = RandomWalk(init_prior = init_prior, + ϵ_t = step_size_dist) #Define the observation model - no delay model time_horizon = 5 diff --git a/EpiAware/test/EpiAwareUtils/turing-methods.jl b/EpiAware/test/EpiAwareUtils/turing-methods.jl index 47e77c9e2..b175f64ce 100644 --- a/EpiAware/test/EpiAwareUtils/turing-methods.jl +++ b/EpiAware/test/EpiAwareUtils/turing-methods.jl @@ -67,11 +67,8 @@ end @testitem "Turing method for generate_epiaware with two latent processes" begin using Distributions, Turing - # Latent model - damp_prior = truncated(Normal(0.0, 0.05), 0.0, 1) - std_prior = truncated(Normal(0.0, 0.05), 0.0, Inf) - init_prior = Normal() - ar_process = AR(damp_prior, std_prior, init_prior) + # Latent model - default AR model + ar_process = AR() # Used again in obs model diff --git a/EpiAware/test/EpiInfModels/ODEProcess.jl b/EpiAware/test/EpiInfModels/ODEProcess.jl new file mode 100644 index 000000000..24818bf7d --- /dev/null +++ b/EpiAware/test/EpiInfModels/ODEProcess.jl @@ -0,0 +1,150 @@ +@testitem "ODEProcess for SIR model constructor + `generate_latent_infs` tests" begin + using OrdinaryDiffEq, Distributions + # Define the time span for the ODE problem + tspan = (0.0, 30.0) + + # Define prior distributions + infectiousness = LogNormal(log(0.3), 0.05) + recovery_rate = LogNormal(log(0.1), 0.05) + initial_prop_infected = Beta(1, 99) + + # Create an instance of SIRParams + sirparams = SIRParams( + tspan = tspan, + infectiousness = infectiousness, + recovery_rate = recovery_rate, + initial_prop_infected = initial_prop_infected + ) + + # Define the SIR ODEProcess model + # using solver_options as a Dict + sir_process = ODEProcess( + params = sirparams, + sol2infs = sol -> sol[2, :], + solver_options = Dict(:verbose => false, :saveat => 1.0, :reltol => 1e-10) + ) + # Define the SIR ODEProcess model + # using solver_options as a NamedTuple + sir_process2 = ODEProcess( + params = sirparams, + sol2infs = sol -> sol[2, :], + solver_options = (verbose = false, saveat = 1.0, reltol = 1e-10) + ) + @testset "Constructor tests" begin + # Check the types of the fields + @test sir_process.params isa SIRParams + @test sir_process.sol2infs isa Function + @test sir_process.solver_options isa Dict + @test sir_process2.solver_options isa NamedTuple + end + + @testset "generate_latent_infs tests equal with both solver_options" begin + Z_t = rand(10) # dummy latent process + inf_mdl = generate_latent_infs(sir_process, Z_t) + inf_mdl2 = generate_latent_infs(sir_process2, Z_t) + θ = rand(inf_mdl) + θ2 = rand(inf_mdl2) + @test keys(θ) == keys(θ2) + It = (inf_mdl | θ)() + It2 = (inf_mdl2 | θ)() + + @test It ≈ It2 + end +end + +@testitem "ODEProcess for SEIR model constructor + `generate_latent_infs` tests" begin + using OrdinaryDiffEq, Distributions + # Define the time span for the ODE problem + tspan = (0.0, 30.0) + + # Define prior distributions + infectiousness = LogNormal(log(0.3), 0.05) + incubation_rate = LogNormal(log(0.1), 0.05) + recovery_rate = LogNormal(log(0.1), 0.05) + initial_prop_infected = Beta(1, 99) + + # Create an instance of SIRParams + seirparams = SEIRParams( + tspan = tspan, + infectiousness = infectiousness, + incubation_rate = incubation_rate, + recovery_rate = recovery_rate, + initial_prop_infected = initial_prop_infected + ) + + # Define the SIR ODEProcess model + # using solver_options as a Dict + seir_process = ODEProcess( + params = seirparams, + sol2infs = sol -> sol[2, :], + solver_options = Dict(:verbose => false, :saveat => 1.0, :reltol => 1e-10) + ) + # Define the SIR ODEProcess model + # using solver_options as a NamedTuple + seir_process2 = ODEProcess( + params = seirparams, + sol2infs = sol -> sol[2, :], + solver_options = (verbose = false, saveat = 1.0, reltol = 1e-10) + ) + @testset "Constructor tests" begin + # Check the types of the fields + @test seir_process.params isa SEIRParams + @test seir_process.sol2infs isa Function + @test seir_process.solver_options isa Dict + @test seir_process2.solver_options isa NamedTuple + end + + @testset "generate_latent_infs tests equal with both solver_options" begin + Z_t = rand(10) # dummy latent process + inf_mdl = generate_latent_infs(seir_process, Z_t) + inf_mdl2 = generate_latent_infs(seir_process2, Z_t) + θ = rand(inf_mdl) + θ2 = rand(inf_mdl2) + @test keys(θ) == keys(θ2) + It = (inf_mdl | θ)() + It2 = (inf_mdl2 | θ)() + + @test It ≈ It2 + end +end + +@testitem "Custom ODE model" begin + using OrdinaryDiffEq, Distributions, Turing + + # Define a simple exponential growth model for testing + function expgrowth(du, u, p, t) + du[1] = p[1] * u[1] + end + + r = log(2) / 7 # Growth rate corresponding to 7 day doubling time + + # Define the ODE problem using SciML + prob = ODEProblem(expgrowth, [1.0], (0.0, 10.0), [r]) + + # Define the custom parameters struct + struct CustomParams <: AbstractTuringLatentModel + prob::ODEProblem + r::Float64 + u0::Float64 + end + params = CustomParams(prob, r, 1.0) + + # Define the custom generate_latent function + @model function EpiAwareBase.generate_latent(params::CustomParams, Z_t) + return ([params.u0], [params.r]) + end + + # Define the ODEProcess + expgrowth_model = ODEProcess( + params = params, + sol2infs = sol -> sol[1, :] + ) + + # Generate the latent infections + Z_t = rand(10) # dummy latent process + inf_mdl = generate_latent_infs(expgrowth_model, Z_t) + @test rand(inf_mdl) == NamedTuple() + I_t = inf_mdl() + @test length(I_t) == 11 + @test I_t ≈ [exp(r * t) for t in 0:10] +end diff --git a/EpiAware/test/EpiLatentModels/manipulators/broadcast/LatentModel.jl b/EpiAware/test/EpiLatentModels/manipulators/broadcast/LatentModel.jl index 9843bf140..3afdb70c7 100644 --- a/EpiAware/test/EpiLatentModels/manipulators/broadcast/LatentModel.jl +++ b/EpiAware/test/EpiLatentModels/manipulators/broadcast/LatentModel.jl @@ -28,7 +28,7 @@ end @test length(rand_model.ϵ_t) == 2 fix_model = fix( broadcasted_model, - (σ_RW = 2.0, rw_init = 1.0, ϵ_t = [1, 2]) + (std = 2.0, rw_init = 1.0, ϵ_t = [1, 2]) ) out = fix_model() @test out == vcat(fill(1.0, 5), fill(3.0, 5), fill(7.0, 5)) diff --git a/EpiAware/test/EpiLatentModels/models/AR.jl b/EpiAware/test/EpiLatentModels/models/AR.jl index 0e99b7b25..e3e98358c 100644 --- a/EpiAware/test/EpiLatentModels/models/AR.jl +++ b/EpiAware/test/EpiLatentModels/models/AR.jl @@ -3,11 +3,12 @@ damp_prior = truncated(Normal(0.0, 0.05), 0.0, 1) std_prior = truncated(Normal(0.0, 0.05), 0.0, Inf) + ϵ_t = HierarchicalNormal(; std_prior) init_prior = Normal() - ar_process = AR(damp_prior, std_prior, init_prior) + ar_process = AR(damp_prior, init_prior; ϵ_t) @test ar_process.damp_prior == filldist(damp_prior, 1) - @test ar_process.std_prior == std_prior + @test ar_process.ϵ_t.std_prior == std_prior @test ar_process.init_prior == filldist(init_prior, 1) end @@ -20,7 +21,7 @@ end end @testset "std_prior" begin - std_AR = rand(ar.std_prior) + std_AR = rand(ar.ϵ_t.std_prior) @test std_AR >= 0.0 end @@ -32,10 +33,12 @@ end @testitem "Test AR(2)" begin using Distributions + std_prior = truncated(Normal(0.0, 0.05), 0.0, Inf) + ϵ_t = HierarchicalNormal(; std_prior) ar = AR( damp_priors = [truncated(Normal(0.0, 0.05), 0.0, 1), truncated(Normal(0.0, 0.05), 0.0, 1)], - std_prior = truncated(Normal(0.0, 0.05), 0.0, Inf), + ϵ_t = ϵ_t, init_priors = [Normal(), Normal()] ) @testset "damp_prior" begin @@ -46,7 +49,7 @@ end end @testset "std_prior" begin - std_AR = rand(ar.std_prior) + std_AR = rand(ar.ϵ_t.std_prior) @test std_AR >= 0.0 end @@ -70,7 +73,7 @@ end ar_init = [0.0] model = generate_latent(ar_model, n) - fixed_model = fix(model, (σ_AR = σ_AR, damp_AR = damp, ar_init = ar_init)) + fixed_model = fix(model, (std = σ_AR, damp_AR = damp, ar_init = ar_init)) n_samples = 100 samples = sample(fixed_model, Prior(), n_samples; progress = false) |> diff --git a/EpiAware/test/EpiLatentModels/models/HierarchicalNormal.jl b/EpiAware/test/EpiLatentModels/models/HierarchicalNormal.jl index 5fd843f79..02548a710 100644 --- a/EpiAware/test/EpiLatentModels/models/HierarchicalNormal.jl +++ b/EpiAware/test/EpiLatentModels/models/HierarchicalNormal.jl @@ -8,7 +8,7 @@ int_def = HierarchicalNormal() @test typeof(int_def) <: AbstractTuringLatentModel @test int_def.mean == 0.0 - @test int_def.std_prior == truncated(Normal(0, 1), 0, Inf) + @test int_def.std_prior == truncated(Normal(0, 0.1), 0, Inf) @test int == HierarchicalNormal(mean = 0.1, std_prior = truncated(Normal(0, 2), 0, Inf)) end diff --git a/EpiAware/test/EpiLatentModels/models/IDD.jl b/EpiAware/test/EpiLatentModels/models/IID.jl similarity index 76% rename from EpiAware/test/EpiLatentModels/models/IDD.jl rename to EpiAware/test/EpiLatentModels/models/IID.jl index acc03602a..478e0385e 100644 --- a/EpiAware/test/EpiLatentModels/models/IDD.jl +++ b/EpiAware/test/EpiLatentModels/models/IID.jl @@ -1,40 +1,40 @@ -@testitem "Testing IDD constructor" begin +@testitem "Testing IID constructor" begin using Distributions, Turing normal_prior = Normal(0.0, 1.0) - idd_process = IDD(normal_prior) + idd_process = IID(normal_prior) @test idd_process.ϵ_t == normal_prior end -@testitem "Test IDD defaults" begin +@testitem "Test IID defaults" begin using Distributions - idd = IDD() + idd = IID() @test idd.ϵ_t == Normal(0, 1) end -@testitem "Test IDD with different distributions" begin +@testitem "Test IID with different distributions" begin using Distributions @testset "Uniform distribution" begin - idd = IDD(Uniform(0, 1)) + idd = IID(Uniform(0, 1)) sample = rand(idd.ϵ_t) @test 0 <= sample <= 1 end @testset "Exponential distribution" begin - idd = IDD(Exponential(1)) + idd = IID(Exponential(1)) sample = rand(idd.ϵ_t) @test sample >= 0 end end -@testitem "Testing IDD process against theoretical properties" begin +@testitem "Testing IID process against theoretical properties" begin using DynamicPPL, Turing using HypothesisTests: ExactOneSampleKSTest, pvalue using Distributions - idd_model = IDD(Normal(2, 3)) + idd_model = IID(Normal(2, 3)) n = 1000 model = generate_latent(idd_model, n) diff --git a/EpiAware/test/EpiLatentModels/models/MA.jl b/EpiAware/test/EpiLatentModels/models/MA.jl index 4ed2ef714..cb9dff5bf 100644 --- a/EpiAware/test/EpiLatentModels/models/MA.jl +++ b/EpiAware/test/EpiLatentModels/models/MA.jl @@ -8,7 +8,7 @@ @test ma_process.θ_prior == filldist(θ_prior, 1) @test ma_process.σ_prior == σ_prior @test ma_process.q == 1 - @test ma_process.ϵ_t isa IDD + @test ma_process.ϵ_t isa IID end @testitem "Test MA(2)" begin @@ -19,7 +19,7 @@ end σ_prior = HalfNormal(0.1) ) @test ma.q == 2 - @test ma.ϵ_t isa IDD + @test ma.ϵ_t isa IID @test ma.θ_prior == filldist(θ_prior, 2) end diff --git a/EpiAware/test/EpiLatentModels/models/Null.jl b/EpiAware/test/EpiLatentModels/models/Null.jl new file mode 100644 index 000000000..305760702 --- /dev/null +++ b/EpiAware/test/EpiLatentModels/models/Null.jl @@ -0,0 +1,8 @@ +@testitem "Null Model Tests" begin + # Test that Null can be instantiated + @test Null() isa Null + + # Test that generate_latent returns nothing + null = Null() + @test isnothing(generate_latent(null, 10)()) +end diff --git a/EpiAware/test/EpiLatentModels/odemodels/SEIRParams.jl b/EpiAware/test/EpiLatentModels/odemodels/SEIRParams.jl new file mode 100644 index 000000000..b3803d116 --- /dev/null +++ b/EpiAware/test/EpiLatentModels/odemodels/SEIRParams.jl @@ -0,0 +1,60 @@ +@testitem "SEIRParams: constructor and `generate_latent`" begin + using OrdinaryDiffEq, Distributions + # Define the time span for the ODE problem + tspan = (0.0, 10.0) + + # Define prior distributions + infectiousness = LogNormal(log(0.3), 0.05) + incubation_rate = LogNormal(log(0.1), 0.05) + recovery_rate = LogNormal(log(0.1), 0.05) + initial_prop_infected = Beta(2, 5) + + # Create an instance of seirparams + seirparams = SEIRParams( + tspan = tspan, + infectiousness = infectiousness, + incubation_rate = incubation_rate, + recovery_rate = recovery_rate, + initial_prop_infected = initial_prop_infected + ) + + @testset "SEIRParams constructor tests" begin + # Check the types of the fields + @test seirparams.prob isa ODEProblem + @test seirparams.infectiousness isa Distribution + @test seirparams.incubation_rate isa Distribution + @test seirparams.recovery_rate isa Distribution + @test seirparams.initial_prop_infected isa Distribution + + # Check the values of the fields + @test seirparams.prob.tspan == tspan + @test seirparams.infectiousness == infectiousness + @test seirparams.incubation_rate == incubation_rate + @test seirparams.recovery_rate == recovery_rate + @test seirparams.initial_prop_infected == initial_prop_infected + end + + @testset "SEIRParams `generate_latent` tests" begin + # Generate parameters + Z_t = rand(10) # dummy latent process + seirparam_mdl = generate_latent(seirparams, Z_t) + sampled_params = rand(seirparam_mdl) + + # Check the types of the fields + @test sampled_params.β isa Float64 + @test sampled_params.α isa Float64 + @test sampled_params.γ isa Float64 + @test sampled_params.initial_infs isa Float64 + end +end + +@testitem "SEIRParams: jac_prototype non-zeros invariant to jac call" begin + Jp = deepcopy(EpiAware.EpiLatentModels._seir_jac_prototype) + Jp_pattern_before = Jp .!= 0 + u = rand(4) + p = rand(3) + EpiAware.EpiLatentModels._seir_jac(Jp, u, p, 0.0) + Jp_pattern_after = Jp .!= 0 + + @test Jp_pattern_before == Jp_pattern_after +end diff --git a/EpiAware/test/EpiLatentModels/odemodels/SIRParams.jl b/EpiAware/test/EpiLatentModels/odemodels/SIRParams.jl new file mode 100644 index 000000000..000c86366 --- /dev/null +++ b/EpiAware/test/EpiLatentModels/odemodels/SIRParams.jl @@ -0,0 +1,55 @@ +@testitem "SIRParams: constructor and `generate_latent`" begin + using OrdinaryDiffEq, Distributions + # Define the time span for the ODE problem + tspan = (0.0, 10.0) + + # Define prior distributions + infectiousness = LogNormal(log(0.3), 0.05) + recovery_rate = LogNormal(log(0.1), 0.05) + initial_prop_infected = Beta(2, 5) + + # Create an instance of SIRParams + sirparams = SIRParams( + tspan = tspan, + infectiousness = infectiousness, + recovery_rate = recovery_rate, + initial_prop_infected = initial_prop_infected + ) + + @testset "SIRParams constructor tests" begin + # Check the types of the fields + @test sirparams.prob isa ODEProblem + @test sirparams.infectiousness isa Distribution + @test sirparams.recovery_rate isa Distribution + @test sirparams.initial_prop_infected isa Distribution + + # Check the values of the fields + @test sirparams.prob.tspan == tspan + @test sirparams.infectiousness == infectiousness + @test sirparams.recovery_rate == recovery_rate + @test sirparams.initial_prop_infected == initial_prop_infected + end + + @testset "SIRParams `generate_latent` tests" begin + # Generate parameters + Z_t = rand(10) # dummy latent process + sirparam_mdl = generate_latent(sirparams, Z_t) + sampled_params = rand(sirparam_mdl) + + # Check the types of the fields + @test sampled_params.β isa Float64 + @test sampled_params.γ isa Float64 + @test sampled_params.I₀ isa Float64 + end +end + +@testitem "SIRParams: jac_prototype non-zeros invariant to jac call" begin + Jp = deepcopy(EpiAware.EpiLatentModels._sir_jac_prototype) + Jp_pattern_before = Jp .!= 0 + u = rand(3) + p = rand(2) + EpiAware.EpiLatentModels._sir_jac(Jp, u, p, 0.0) + Jp_pattern_after = Jp .!= 0 + + @test Jp_pattern_before == Jp_pattern_after +end diff --git a/EpiAware/test/EpiObsModels/modifiers/ascertainment/helpers.jl b/EpiAware/test/EpiObsModels/modifiers/ascertainment/helpers.jl index bcf7ce20e..881fd1fae 100644 --- a/EpiAware/test/EpiObsModels/modifiers/ascertainment/helpers.jl +++ b/EpiAware/test/EpiObsModels/modifiers/ascertainment/helpers.jl @@ -5,7 +5,8 @@ model::AbstractTuringObservationModel end - @model EpiAware.EpiAwareBase.generate_observations(model::ExpectedObs, y_t, Y_t) = begin + @model EpiAware.EpiAwareBase.generate_observations(model::ExpectedObs, y_t, + Y_t) = begin expected_obs := Y_t @submodel y_t = generate_observations(model.model, y_t, Y_t) end diff --git a/EpiAware/test/Project.toml b/EpiAware/test/Project.toml index 158597502..b9cb60592 100644 --- a/EpiAware/test/Project.toml +++ b/EpiAware/test/Project.toml @@ -15,6 +15,7 @@ LogDensityProblems = "6fdf6af0-433a-55f7-b3ed-c6c6e0b8df7c" LogDensityProblemsAD = "996a588d-648d-4e1f-a8f0-a84b347e47b1" LogExpFunctions = "2ab3a3ac-af41-5b50-aa03-7779005ae688" MCMCChains = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" +OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Pathfinder = "b1d3bc72-d0e7-4279-b92f-7fa5d6d2d454" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" diff --git a/benchmark/Manifest.toml b/benchmark/Manifest.toml new file mode 100644 index 000000000..451bcb15d --- /dev/null +++ b/benchmark/Manifest.toml @@ -0,0 +1,2858 @@ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.11.1" +manifest_format = "2.0" +project_hash = "9fb2e9db0221fb4b8d0c098c0ecdd8e5e0675214" + +[[deps.ADTypes]] +git-tree-sha1 = "30bb95a372787af850addf28ac937f1be7b79173" +uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" +version = "1.10.0" +weakdeps = ["ChainRulesCore", "ConstructionBase", "EnzymeCore"] + + [deps.ADTypes.extensions] + ADTypesChainRulesCoreExt = "ChainRulesCore" + ADTypesConstructionBaseExt = "ConstructionBase" + ADTypesEnzymeCoreExt = "EnzymeCore" + +[[deps.AbstractFFTs]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "d92ad398961a3ed262d8bf04a1a2b8340f915fef" +uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" +version = "1.5.0" +weakdeps = ["ChainRulesCore", "Test"] + + [deps.AbstractFFTs.extensions] + AbstractFFTsChainRulesCoreExt = "ChainRulesCore" + AbstractFFTsTestExt = "Test" + +[[deps.AbstractMCMC]] +deps = ["BangBang", "ConsoleProgressMonitor", "Distributed", "FillArrays", "LogDensityProblems", "Logging", "LoggingExtras", "ProgressLogging", "Random", "StatsBase", "TerminalLoggers", "Transducers"] +git-tree-sha1 = "aa469a7830413bd4c855963e3f648bd9d145c2c3" +uuid = "80f14c24-f653-4e6a-9b94-39d6b0f70001" +version = "5.6.0" + +[[deps.AbstractPPL]] +deps = ["AbstractMCMC", "Accessors", "DensityInterface", "Random"] +git-tree-sha1 = "6380a9a03a4207bac53ac310dd3a283bb4df54ef" +uuid = "7a57a42e-76ec-4ea3-a279-07e840d6d9cf" +version = "0.8.4" + +[[deps.AbstractTrees]] +git-tree-sha1 = "2d9c9a55f9c93e8887ad391fbae72f8ef55e1177" +uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" +version = "0.4.5" + +[[deps.Accessors]] +deps = ["CompositionsBase", "ConstructionBase", "InverseFunctions", "LinearAlgebra", "MacroTools", "Markdown"] +git-tree-sha1 = "b392ede862e506d451fc1616e79aa6f4c673dab8" +uuid = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" +version = "0.1.38" + + [deps.Accessors.extensions] + AccessorsAxisKeysExt = "AxisKeys" + AccessorsDatesExt = "Dates" + AccessorsIntervalSetsExt = "IntervalSets" + AccessorsStaticArraysExt = "StaticArrays" + AccessorsStructArraysExt = "StructArrays" + AccessorsTestExt = "Test" + AccessorsUnitfulExt = "Unitful" + + [deps.Accessors.weakdeps] + AxisKeys = "94b1ba4f-4ee9-5380-92f1-94cde586c3c5" + Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" + IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953" + Requires = "ae029012-a4dd-5104-9daa-d747884805df" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.Adapt]] +deps = ["LinearAlgebra", "Requires"] +git-tree-sha1 = "50c3c56a52972d78e8be9fd135bfb91c9574c140" +uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" +version = "4.1.1" +weakdeps = ["StaticArrays"] + + [deps.Adapt.extensions] + AdaptStaticArraysExt = "StaticArrays" + +[[deps.AdvancedHMC]] +deps = ["AbstractMCMC", "ArgCheck", "DocStringExtensions", "InplaceOps", "LinearAlgebra", "LogDensityProblems", "LogDensityProblemsAD", "ProgressMeter", "Random", "Requires", "Setfield", "SimpleUnPack", "Statistics", "StatsBase", "StatsFuns"] +git-tree-sha1 = "6f6a228808fe00ad05b47d74747c800d3df18acb" +uuid = "0bf59076-c3b1-5ca4-86bd-e02cd72cde3d" +version = "0.6.4" + + [deps.AdvancedHMC.extensions] + AdvancedHMCCUDAExt = "CUDA" + AdvancedHMCMCMCChainsExt = "MCMCChains" + AdvancedHMCOrdinaryDiffEqExt = "OrdinaryDiffEq" + + [deps.AdvancedHMC.weakdeps] + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + MCMCChains = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" + OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" + +[[deps.AdvancedMH]] +deps = ["AbstractMCMC", "Distributions", "FillArrays", "LinearAlgebra", "LogDensityProblems", "Random", "Requires"] +git-tree-sha1 = "b5f8159bffa2e6af9e080c11c4e6da8c5b05f079" +uuid = "5b7e9947-ddc0-4b3f-9b55-0d8042f74170" +version = "0.8.4" +weakdeps = ["DiffResults", "ForwardDiff", "MCMCChains", "StructArrays"] + + [deps.AdvancedMH.extensions] + AdvancedMHForwardDiffExt = ["DiffResults", "ForwardDiff"] + AdvancedMHMCMCChainsExt = "MCMCChains" + AdvancedMHStructArraysExt = "StructArrays" + +[[deps.AdvancedPS]] +deps = ["AbstractMCMC", "Distributions", "Random", "Random123", "Requires", "SSMProblems", "StatsFuns"] +git-tree-sha1 = "5dcd3de7e7346f48739256e71a86d0f96690b8c8" +uuid = "576499cb-2369-40b2-a588-c64705576edc" +version = "0.6.0" +weakdeps = ["Libtask"] + + [deps.AdvancedPS.extensions] + AdvancedPSLibtaskExt = "Libtask" + +[[deps.AdvancedVI]] +deps = ["ADTypes", "Bijectors", "DiffResults", "Distributions", "DistributionsAD", "DocStringExtensions", "ForwardDiff", "LinearAlgebra", "ProgressMeter", "Random", "Requires", "StatsBase", "StatsFuns", "Tracker"] +git-tree-sha1 = "d23ac9ecdf0ba3dfdd8ea22f42793fabc763afdc" +uuid = "b5ca4192-6429-45e5-a2d9-87aec30a685c" +version = "0.2.10" + + [deps.AdvancedVI.extensions] + AdvancedVIEnzymeExt = ["Enzyme"] + AdvancedVIFluxExt = ["Flux"] + AdvancedVIReverseDiffExt = ["ReverseDiff"] + AdvancedVIZygoteExt = ["Zygote"] + + [deps.AdvancedVI.weakdeps] + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.AliasTables]] +deps = ["PtrArrays", "Random"] +git-tree-sha1 = "9876e1e164b144ca45e9e3198d0b689cadfed9ff" +uuid = "66dad0bd-aa9a-41b7-9441-69ab47430ed8" +version = "1.1.3" + +[[deps.ArgCheck]] +git-tree-sha1 = "a3a402a35a2f7e0b87828ccabbd5ebfbebe356b4" +uuid = "dce04be8-c92d-5529-be00-80e4d2c0e197" +version = "2.3.0" + +[[deps.ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" +version = "1.1.2" + +[[deps.ArnoldiMethod]] +deps = ["LinearAlgebra", "Random", "StaticArrays"] +git-tree-sha1 = "d57bd3762d308bded22c3b82d033bff85f6195c6" +uuid = "ec485272-7323-5ecc-a04f-4719b315124d" +version = "0.4.0" + +[[deps.ArrayInterface]] +deps = ["Adapt", "LinearAlgebra"] +git-tree-sha1 = "d60a1922358aa203019b7857a2c8c37329b8736c" +uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" +version = "7.17.0" + + [deps.ArrayInterface.extensions] + ArrayInterfaceBandedMatricesExt = "BandedMatrices" + ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices" + ArrayInterfaceCUDAExt = "CUDA" + ArrayInterfaceCUDSSExt = "CUDSS" + ArrayInterfaceChainRulesCoreExt = "ChainRulesCore" + ArrayInterfaceChainRulesExt = "ChainRules" + ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" + ArrayInterfaceReverseDiffExt = "ReverseDiff" + ArrayInterfaceSparseArraysExt = "SparseArrays" + ArrayInterfaceStaticArraysCoreExt = "StaticArraysCore" + ArrayInterfaceTrackerExt = "Tracker" + + [deps.ArrayInterface.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + CUDSS = "45b445bb-4962-46a0-9369-b4df9d0f772e" + ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.ArrayLayouts]] +deps = ["FillArrays", "LinearAlgebra"] +git-tree-sha1 = "492681bc44fac86804706ddb37da10880a2bd528" +uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" +version = "1.10.4" +weakdeps = ["SparseArrays"] + + [deps.ArrayLayouts.extensions] + ArrayLayoutsSparseArraysExt = "SparseArrays" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" +version = "1.11.0" + +[[deps.Atomix]] +deps = ["UnsafeAtomics"] +git-tree-sha1 = "c06a868224ecba914baa6942988e2f2aade419be" +uuid = "a9b6321e-bd34-4604-b9c9-b65b8de01458" +version = "0.1.0" + +[[deps.AxisAlgorithms]] +deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] +git-tree-sha1 = "01b8ccb13d68535d73d2b0c23e39bd23155fb712" +uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950" +version = "1.1.0" + +[[deps.AxisArrays]] +deps = ["Dates", "IntervalSets", "IterTools", "RangeArrays"] +git-tree-sha1 = "16351be62963a67ac4083f748fdb3cca58bfd52f" +uuid = "39de3d68-74b9-583c-8d2d-e117c070f3a9" +version = "0.4.7" + +[[deps.BangBang]] +deps = ["Accessors", "ConstructionBase", "InitialValues", "LinearAlgebra", "Requires"] +git-tree-sha1 = "e2144b631226d9eeab2d746ca8880b7ccff504ae" +uuid = "198e06fe-97b7-11e9-32a5-e1d131e6ad66" +version = "0.4.3" + + [deps.BangBang.extensions] + BangBangChainRulesCoreExt = "ChainRulesCore" + BangBangDataFramesExt = "DataFrames" + BangBangStaticArraysExt = "StaticArrays" + BangBangStructArraysExt = "StructArrays" + BangBangTablesExt = "Tables" + BangBangTypedTablesExt = "TypedTables" + + [deps.BangBang.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" + Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" + TypedTables = "9d95f2ec-7b3d-5a63-8d20-e2491e220bb9" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" +version = "1.11.0" + +[[deps.Baselet]] +git-tree-sha1 = "aebf55e6d7795e02ca500a689d326ac979aaf89e" +uuid = "9718e550-a3fa-408a-8086-8db961cd8217" +version = "0.1.1" + +[[deps.BenchmarkCI]] +deps = ["Base64", "BenchmarkTools", "CpuId", "Dates", "GitHub", "JSON", "LinearAlgebra", "Logging", "Markdown", "Pkg", "PkgBenchmark", "Setfield", "Tar", "UnPack", "Zstd_jll"] +git-tree-sha1 = "06368d9c0aa5174e85b3ef4b506e3c84df2038d2" +repo-rev = "master" +repo-url = "https://github.com/SamuelBrand1/BenchmarkCI.jl" +uuid = "20533458-34a3-403d-a444-e18f38190b5b" +version = "0.1.10-DEV" + +[[deps.BenchmarkTools]] +deps = ["JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"] +git-tree-sha1 = "f1dff6729bc61f4d49e140da1af55dcd1ac97b2f" +uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" +version = "1.5.0" + +[[deps.Bijections]] +git-tree-sha1 = "d8b0439d2be438a5f2cd68ec158fe08a7b2595b7" +uuid = "e2ed5e7c-b2de-5872-ae92-c73ca462fb04" +version = "0.1.9" + +[[deps.Bijectors]] +deps = ["ArgCheck", "ChainRules", "ChainRulesCore", "ChangesOfVariables", "Compat", "Distributions", "DocStringExtensions", "Functors", "InverseFunctions", "IrrationalConstants", "LinearAlgebra", "LogExpFunctions", "MappedArrays", "Random", "Reexport", "Requires", "Roots", "SparseArrays", "Statistics"] +git-tree-sha1 = "92edc3544607c4fda1b30357910597e2a70dc5ea" +uuid = "76274a88-744f-5084-9051-94815aaf08c4" +version = "0.13.18" + + [deps.Bijectors.extensions] + BijectorsDistributionsADExt = "DistributionsAD" + BijectorsEnzymeExt = "Enzyme" + BijectorsForwardDiffExt = "ForwardDiff" + BijectorsLazyArraysExt = "LazyArrays" + BijectorsReverseDiffExt = "ReverseDiff" + BijectorsTapirExt = "Tapir" + BijectorsTrackerExt = "Tracker" + BijectorsZygoteExt = "Zygote" + + [deps.Bijectors.weakdeps] + DistributionsAD = "ced4e74d-a319-5a8a-b0ac-84af2272839c" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + LazyArrays = "5078a376-72f3-5289-bfd5-ec5146d43c02" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tapir = "07d77754-e150-4737-8c94-cd238a1fb45b" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.BitFlags]] +git-tree-sha1 = "0691e34b3bb8be9307330f88d1a3c3f25466c24d" +uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" +version = "0.1.9" + +[[deps.BitTwiddlingConvenienceFunctions]] +deps = ["Static"] +git-tree-sha1 = "f21cfd4950cb9f0587d5067e69405ad2acd27b87" +uuid = "62783981-4cbd-42fc-bca8-16325de8dc4b" +version = "0.1.6" + +[[deps.CEnum]] +git-tree-sha1 = "389ad5c84de1ae7cf0e28e381131c98ea87d54fc" +uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" +version = "0.5.0" + +[[deps.CPUSummary]] +deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] +git-tree-sha1 = "5a97e67919535d6841172016c9530fd69494e5ec" +uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" +version = "0.2.6" + +[[deps.Chain]] +git-tree-sha1 = "9ae9be75ad8ad9d26395bf625dea9beac6d519f1" +uuid = "8be319e6-bccf-4806-a6f7-6fae938471bc" +version = "0.6.0" + +[[deps.ChainRules]] +deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "SparseInverseSubset", "Statistics", "StructArrays", "SuiteSparse"] +git-tree-sha1 = "9e2503a7ac8df599cbf422af95729b2d263220f6" +uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" +version = "1.72.0" + +[[deps.ChainRulesCore]] +deps = ["Compat", "LinearAlgebra"] +git-tree-sha1 = "3e4b134270b372f2ed4d4d0e936aabaefc1802bc" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "1.25.0" +weakdeps = ["SparseArrays"] + + [deps.ChainRulesCore.extensions] + ChainRulesCoreSparseArraysExt = "SparseArrays" + +[[deps.ChangesOfVariables]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "799b25ca3a8a24936ae7b5c52ad194685fc3e6ef" +uuid = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" +version = "0.1.9" +weakdeps = ["InverseFunctions", "Test"] + + [deps.ChangesOfVariables.extensions] + ChangesOfVariablesInverseFunctionsExt = "InverseFunctions" + ChangesOfVariablesTestExt = "Test" + +[[deps.CloseOpenIntervals]] +deps = ["Static", "StaticArrayInterface"] +git-tree-sha1 = "05ba0d07cd4fd8b7a39541e31a7b0254704ea581" +uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" +version = "0.1.13" + +[[deps.CodecZlib]] +deps = ["TranscodingStreams", "Zlib_jll"] +git-tree-sha1 = "bce6804e5e6044c6daab27bb533d1295e4a2e759" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.7.6" + +[[deps.Combinatorics]] +git-tree-sha1 = "08c8b6831dc00bfea825826be0bc8336fc369860" +uuid = "861a8166-3701-5b0c-9a16-15d98fcdc6aa" +version = "1.0.2" + +[[deps.CommonSolve]] +git-tree-sha1 = "0eee5eb66b1cf62cd6ad1b460238e60e4b09400c" +uuid = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" +version = "0.2.4" + +[[deps.CommonSubexpressions]] +deps = ["MacroTools"] +git-tree-sha1 = "cda2cfaebb4be89c9084adaca7dd7333369715c5" +uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" +version = "0.3.1" + +[[deps.CommonWorldInvalidations]] +git-tree-sha1 = "ae52d1c52048455e85a387fbee9be553ec2b68d0" +uuid = "f70d9fcc-98c5-4d4a-abd7-e4cdeebd8ca8" +version = "1.0.0" + +[[deps.Compat]] +deps = ["TOML", "UUIDs"] +git-tree-sha1 = "8ae8d32e09f0dcf42a36b90d4e17f5dd2e4c4215" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "4.16.0" +weakdeps = ["Dates", "LinearAlgebra"] + + [deps.Compat.extensions] + CompatLinearAlgebraExt = "LinearAlgebra" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.1.1+0" + +[[deps.CompositeTypes]] +git-tree-sha1 = "bce26c3dab336582805503bed209faab1c279768" +uuid = "b152e2b5-7a66-4b01-a709-34e65c35f657" +version = "0.1.4" + +[[deps.CompositionsBase]] +git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" +uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" +version = "0.1.2" +weakdeps = ["InverseFunctions"] + + [deps.CompositionsBase.extensions] + CompositionsBaseInverseFunctionsExt = "InverseFunctions" + +[[deps.ConcreteStructs]] +git-tree-sha1 = "f749037478283d372048690eb3b5f92a79432b34" +uuid = "2569d6c7-a4a2-43d3-a901-331e8e4be471" +version = "0.2.3" + +[[deps.ConcurrentUtilities]] +deps = ["Serialization", "Sockets"] +git-tree-sha1 = "ea32b83ca4fefa1768dc84e504cc0a94fb1ab8d1" +uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" +version = "2.4.2" + +[[deps.ConsoleProgressMonitor]] +deps = ["Logging", "ProgressMeter"] +git-tree-sha1 = "3ab7b2136722890b9af903859afcf457fa3059e8" +uuid = "88cd18e8-d9cc-4ea6-8889-5259c0d15c8b" +version = "0.1.2" + +[[deps.ConstructionBase]] +git-tree-sha1 = "76219f1ed5771adbb096743bff43fb5fdd4c1157" +uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" +version = "1.5.8" +weakdeps = ["IntervalSets", "LinearAlgebra", "StaticArrays"] + + [deps.ConstructionBase.extensions] + ConstructionBaseIntervalSetsExt = "IntervalSets" + ConstructionBaseLinearAlgebraExt = "LinearAlgebra" + ConstructionBaseStaticArraysExt = "StaticArrays" + +[[deps.CpuId]] +deps = ["Markdown"] +git-tree-sha1 = "fcbb72b032692610bfbdb15018ac16a36cf2e406" +uuid = "adafc99b-e345-5852-983c-f28acb93d879" +version = "0.3.1" + +[[deps.Crayons]] +git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15" +uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" +version = "4.1.1" + +[[deps.DSP]] +deps = ["Compat", "FFTW", "IterTools", "LinearAlgebra", "Polynomials", "Random", "Reexport", "SpecialFunctions", "Statistics"] +git-tree-sha1 = "0df00546373af8eee1598fb4b2ba480b1ebe895c" +uuid = "717857b8-e6f2-59f4-9121-6e50c889abd2" +version = "0.7.10" + +[[deps.DataAPI]] +git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" +uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" +version = "1.16.0" + +[[deps.DataFrames]] +deps = ["Compat", "DataAPI", "DataStructures", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrecompileTools", "PrettyTables", "Printf", "Random", "Reexport", "SentinelArrays", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] +git-tree-sha1 = "fb61b4812c49343d7ef0b533ba982c46021938a6" +uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" +version = "1.7.0" + +[[deps.DataFramesMeta]] +deps = ["Chain", "DataFrames", "MacroTools", "OrderedCollections", "Reexport", "TableMetadataTools"] +git-tree-sha1 = "7042a6ad5910dc9edeae814e1110209752a1c996" +uuid = "1313f7d8-7da2-5740-9ea0-a2ca25f37964" +version = "0.15.3" + +[[deps.DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "1d0a14036acb104d9e89698bd408f63ab58cdc82" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.20" + +[[deps.DataValueInterfaces]] +git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" +uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" +version = "1.0.0" + +[[deps.Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" +version = "1.11.0" + +[[deps.DefineSingletons]] +git-tree-sha1 = "0fba8b706d0178b4dc7fd44a96a92382c9065c2c" +uuid = "244e2a9f-e319-4986-a169-4d1fe445cd52" +version = "0.1.2" + +[[deps.DelimitedFiles]] +deps = ["Mmap"] +git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" +version = "1.9.1" + +[[deps.DensityInterface]] +deps = ["InverseFunctions", "Test"] +git-tree-sha1 = "80c3e8639e3353e5d2912fb3a1916b8455e2494b" +uuid = "b429d917-457f-4dbc-8f4c-0cc954292b1d" +version = "0.4.0" + +[[deps.Dictionaries]] +deps = ["Indexing", "Random", "Serialization"] +git-tree-sha1 = "61ab242274c0d44412d8eab38942a49aa46de9d0" +uuid = "85a47980-9c8c-11e8-2b9f-f7ca1fa99fb4" +version = "0.4.3" + +[[deps.DiffEqBase]] +deps = ["ArrayInterface", "ConcreteStructs", "DataStructures", "DocStringExtensions", "EnumX", "EnzymeCore", "FastBroadcast", "FastClosures", "FastPower", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "PrecompileTools", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SciMLStructures", "Setfield", "Static", "StaticArraysCore", "Statistics", "TruncatedStacktraces"] +git-tree-sha1 = "b7dbeaa770bad0980ddddf606de814cff2acb3bc" +uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" +version = "6.160.0" + + [deps.DiffEqBase.extensions] + DiffEqBaseCUDAExt = "CUDA" + DiffEqBaseChainRulesCoreExt = "ChainRulesCore" + DiffEqBaseDistributionsExt = "Distributions" + DiffEqBaseEnzymeExt = ["ChainRulesCore", "Enzyme"] + DiffEqBaseGeneralizedGeneratedExt = "GeneralizedGenerated" + DiffEqBaseMPIExt = "MPI" + DiffEqBaseMeasurementsExt = "Measurements" + DiffEqBaseMonteCarloMeasurementsExt = "MonteCarloMeasurements" + DiffEqBaseReverseDiffExt = "ReverseDiff" + DiffEqBaseSparseArraysExt = "SparseArrays" + DiffEqBaseTrackerExt = "Tracker" + DiffEqBaseUnitfulExt = "Unitful" + + [deps.DiffEqBase.weakdeps] + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + GeneralizedGenerated = "6b9d7cbe-bcb9-11e9-073f-15a7a543e2eb" + MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.DiffResults]] +deps = ["StaticArraysCore"] +git-tree-sha1 = "782dd5f4561f5d267313f23853baaaa4c52ea621" +uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" +version = "1.1.0" + +[[deps.DiffRules]] +deps = ["IrrationalConstants", "LogExpFunctions", "NaNMath", "Random", "SpecialFunctions"] +git-tree-sha1 = "23163d55f885173722d1e4cf0f6110cdbaf7e272" +uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" +version = "1.15.1" + +[[deps.DifferentiationInterface]] +deps = ["ADTypes", "LinearAlgebra"] +git-tree-sha1 = "0c99576d0b93df0aff1bed9d9adddef14e4e658f" +uuid = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" +version = "0.6.22" + + [deps.DifferentiationInterface.extensions] + DifferentiationInterfaceChainRulesCoreExt = "ChainRulesCore" + DifferentiationInterfaceDiffractorExt = "Diffractor" + DifferentiationInterfaceEnzymeExt = "Enzyme" + DifferentiationInterfaceFastDifferentiationExt = "FastDifferentiation" + DifferentiationInterfaceFiniteDiffExt = "FiniteDiff" + DifferentiationInterfaceFiniteDifferencesExt = "FiniteDifferences" + DifferentiationInterfaceForwardDiffExt = "ForwardDiff" + DifferentiationInterfaceMooncakeExt = "Mooncake" + DifferentiationInterfacePolyesterForwardDiffExt = "PolyesterForwardDiff" + DifferentiationInterfaceReverseDiffExt = "ReverseDiff" + DifferentiationInterfaceSparseArraysExt = "SparseArrays" + DifferentiationInterfaceSparseMatrixColoringsExt = "SparseMatrixColorings" + DifferentiationInterfaceStaticArraysExt = "StaticArrays" + DifferentiationInterfaceSymbolicsExt = "Symbolics" + DifferentiationInterfaceTrackerExt = "Tracker" + DifferentiationInterfaceZygoteExt = ["Zygote", "ForwardDiff"] + + [deps.DifferentiationInterface.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + Diffractor = "9f5e2b26-1114-432f-b630-d3fe2085c51c" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + FastDifferentiation = "eb9bf01b-bf85-4b60-bf87-ee5de06c00be" + FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41" + FiniteDifferences = "26cc04aa-876d-5657-8c51-4c34ba976000" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" + PolyesterForwardDiff = "98d1487c-24ca-40b6-b7ab-df2af84e126b" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + SparseMatrixColorings = "0a514795-09f3-496d-8182-132a7b665d35" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.Distributed]] +deps = ["Random", "Serialization", "Sockets"] +uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" +version = "1.11.0" + +[[deps.Distributions]] +deps = ["AliasTables", "FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] +git-tree-sha1 = "3101c32aab536e7a27b1763c0797dba151b899ad" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.25.113" +weakdeps = ["ChainRulesCore", "DensityInterface", "Test"] + + [deps.Distributions.extensions] + DistributionsChainRulesCoreExt = "ChainRulesCore" + DistributionsDensityInterfaceExt = "DensityInterface" + DistributionsTestExt = "Test" + +[[deps.DistributionsAD]] +deps = ["Adapt", "ChainRules", "ChainRulesCore", "Compat", "Distributions", "FillArrays", "LinearAlgebra", "PDMats", "Random", "Requires", "SpecialFunctions", "StaticArrays", "StatsFuns", "ZygoteRules"] +git-tree-sha1 = "02c2e6e6a137069227439fe884d729cca5b70e56" +uuid = "ced4e74d-a319-5a8a-b0ac-84af2272839c" +version = "0.6.57" +weakdeps = ["ForwardDiff", "LazyArrays", "ReverseDiff", "Tracker"] + + [deps.DistributionsAD.extensions] + DistributionsADForwardDiffExt = "ForwardDiff" + DistributionsADLazyArraysExt = "LazyArrays" + DistributionsADReverseDiffExt = "ReverseDiff" + DistributionsADTrackerExt = "Tracker" + +[[deps.DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.9.3" + +[[deps.DomainSets]] +deps = ["CompositeTypes", "IntervalSets", "LinearAlgebra", "Random", "StaticArrays"] +git-tree-sha1 = "490392af2c7d63183bfa2c8aaa6ab981c5ba7561" +uuid = "5b8099bc-c8ec-5219-889f-1d9e522a28bf" +version = "0.7.14" + + [deps.DomainSets.extensions] + DomainSetsMakieExt = "Makie" + + [deps.DomainSets.weakdeps] + Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" + +[[deps.Downloads]] +deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] +uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +version = "1.6.0" + +[[deps.DynamicPPL]] +deps = ["ADTypes", "AbstractMCMC", "AbstractPPL", "Accessors", "BangBang", "Bijectors", "Compat", "ConstructionBase", "Distributions", "DocStringExtensions", "LinearAlgebra", "LogDensityProblems", "LogDensityProblemsAD", "MacroTools", "OrderedCollections", "Random", "Requires", "Test"] +git-tree-sha1 = "b8d3cb76b27287a0d2ef6baf8dfe23e6b911f93a" +uuid = "366bfd00-2699-11ea-058f-f148b4cae6d8" +version = "0.28.6" +weakdeps = ["ChainRulesCore", "EnzymeCore", "ForwardDiff", "MCMCChains", "ReverseDiff", "ZygoteRules"] + + [deps.DynamicPPL.extensions] + DynamicPPLChainRulesCoreExt = ["ChainRulesCore"] + DynamicPPLEnzymeCoreExt = ["EnzymeCore"] + DynamicPPLForwardDiffExt = ["ForwardDiff"] + DynamicPPLMCMCChainsExt = ["MCMCChains"] + DynamicPPLReverseDiffExt = ["ReverseDiff"] + DynamicPPLZygoteRulesExt = ["ZygoteRules"] + +[[deps.DynamicPolynomials]] +deps = ["Future", "LinearAlgebra", "MultivariatePolynomials", "MutableArithmetics", "Reexport", "Test"] +git-tree-sha1 = "bbf1ace0781d9744cb697fb856bd2c3f6568dadb" +uuid = "7c1d4256-1411-5781-91ec-d7bc3513ac07" +version = "0.6.0" + +[[deps.Einsum]] +deps = ["Compat"] +git-tree-sha1 = "4a6b3eee0161c89700b6c1949feae8b851da5494" +uuid = "b7d42ee7-0b51-5a75-98ca-779d3107e4c0" +version = "0.4.1" + +[[deps.EllipticalSliceSampling]] +deps = ["AbstractMCMC", "ArrayInterface", "Distributions", "Random", "Statistics"] +git-tree-sha1 = "e611b7fdfbfb5b18d5e98776c30daede41b44542" +uuid = "cad2338a-1db2-11e9-3401-43bc07c9ede2" +version = "2.0.0" + +[[deps.EnumX]] +git-tree-sha1 = "bdb1942cd4c45e3c678fd11569d5cccd80976237" +uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" +version = "1.0.4" + +[[deps.EnzymeCore]] +git-tree-sha1 = "8f205a601760f4798a10f138c3940f0451d95188" +uuid = "f151be2c-9106-41f4-ab19-57ee4f262869" +version = "0.7.8" +weakdeps = ["Adapt"] + + [deps.EnzymeCore.extensions] + AdaptExt = "Adapt" + +[[deps.EpiAware]] +deps = ["ADTypes", "AbstractMCMC", "AdvancedHMC", "DataFramesMeta", "Distributions", "DocStringExtensions", "DynamicPPL", "FillArrays", "LinearAlgebra", "LogExpFunctions", "MCMCChains", "OrdinaryDiffEq", "Pathfinder", "QuadGK", "Random", "Reexport", "SparseArrays", "Statistics", "Tables", "Turing"] +path = "../EpiAware" +uuid = "b2eeebe4-5992-4301-9193-7ebc9f62c855" +version = "0.1.0-DEV" + +[[deps.ExceptionUnwrapping]] +deps = ["Test"] +git-tree-sha1 = "dcb08a0d93ec0b1cdc4af184b26b591e9695423a" +uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" +version = "0.1.10" + +[[deps.ExponentialUtilities]] +deps = ["Adapt", "ArrayInterface", "GPUArraysCore", "GenericSchur", "LinearAlgebra", "PrecompileTools", "Printf", "SparseArrays", "libblastrampoline_jll"] +git-tree-sha1 = "8e18940a5ba7f4ddb41fe2b79b6acaac50880a86" +uuid = "d4d017d3-3776-5f7e-afef-a10c40355c18" +version = "1.26.1" + +[[deps.ExprTools]] +git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" +uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" +version = "0.1.10" + +[[deps.Expronicon]] +deps = ["MLStyle", "Pkg", "TOML"] +git-tree-sha1 = "fc3951d4d398b5515f91d7fe5d45fc31dccb3c9b" +uuid = "6b7a57c9-7cc1-4fdf-b7f5-e857abae3636" +version = "0.8.5" + +[[deps.ExternalDocstrings]] +git-tree-sha1 = "1224740fc4d07c989949e1c1b508ebd49a65a5f6" +uuid = "e189563c-0753-4f5e-ad5c-be4293c83fb4" +version = "0.1.1" + +[[deps.FFTW]] +deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] +git-tree-sha1 = "4820348781ae578893311153d69049a93d05f39d" +uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" +version = "1.8.0" + +[[deps.FFTW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4d81ed14783ec49ce9f2e168208a12ce1815aa25" +uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" +version = "3.3.10+1" + +[[deps.FastBroadcast]] +deps = ["ArrayInterface", "LinearAlgebra", "Polyester", "Static", "StaticArrayInterface", "StrideArraysCore"] +git-tree-sha1 = "ab1b34570bcdf272899062e1a56285a53ecaae08" +uuid = "7034ab61-46d4-4ed7-9d0f-46aef9175898" +version = "0.3.5" + +[[deps.FastClosures]] +git-tree-sha1 = "acebe244d53ee1b461970f8910c235b259e772ef" +uuid = "9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a" +version = "0.3.2" + +[[deps.FastLapackInterface]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "cbf5edddb61a43669710cbc2241bc08b36d9e660" +uuid = "29a986be-02c6-4525-aec4-84b980013641" +version = "2.0.4" + +[[deps.FastPower]] +git-tree-sha1 = "58c3431137131577a7c379d00fea00be524338fb" +uuid = "a4df4552-cc26-4903-aec0-212e50a0e84b" +version = "1.1.1" + + [deps.FastPower.extensions] + FastPowerEnzymeExt = "Enzyme" + FastPowerForwardDiffExt = "ForwardDiff" + FastPowerMeasurementsExt = "Measurements" + FastPowerMonteCarloMeasurementsExt = "MonteCarloMeasurements" + FastPowerReverseDiffExt = "ReverseDiff" + FastPowerTrackerExt = "Tracker" + + [deps.FastPower.weakdeps] + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" +version = "1.11.0" + +[[deps.FillArrays]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "6a70198746448456524cb442b8af316927ff3e1a" +uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" +version = "1.13.0" +weakdeps = ["PDMats", "SparseArrays", "Statistics"] + + [deps.FillArrays.extensions] + FillArraysPDMatsExt = "PDMats" + FillArraysSparseArraysExt = "SparseArrays" + FillArraysStatisticsExt = "Statistics" + +[[deps.FiniteDiff]] +deps = ["ArrayInterface", "LinearAlgebra", "Setfield"] +git-tree-sha1 = "b10bdafd1647f57ace3885143936749d61638c3b" +uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" +version = "2.26.0" + + [deps.FiniteDiff.extensions] + FiniteDiffBandedMatricesExt = "BandedMatrices" + FiniteDiffBlockBandedMatricesExt = "BlockBandedMatrices" + FiniteDiffSparseArraysExt = "SparseArrays" + FiniteDiffStaticArraysExt = "StaticArrays" + + [deps.FiniteDiff.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + +[[deps.Folds]] +deps = ["Accessors", "BangBang", "Baselet", "DefineSingletons", "Distributed", "ExternalDocstrings", "InitialValues", "MicroCollections", "Referenceables", "Requires", "Test", "ThreadedScans", "Transducers"] +git-tree-sha1 = "7eb4bc88d8295e387a667fd43d67c157ddee76cf" +uuid = "41a02a25-b8f0-4f67-bc48-60067656b558" +version = "0.2.10" + + [deps.Folds.extensions] + FoldsOnlineStatsBaseExt = "OnlineStatsBase" + + [deps.Folds.weakdeps] + OnlineStatsBase = "925886fa-5bf2-5e8e-b522-a9147a512338" + +[[deps.Format]] +git-tree-sha1 = "9c68794ef81b08086aeb32eeaf33531668d5f5fc" +uuid = "1fa38f19-a742-5d3f-a2b9-30dd87b9d5f8" +version = "1.3.7" + +[[deps.ForwardDiff]] +deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] +git-tree-sha1 = "a2df1b776752e3f344e5116c06d75a10436ab853" +uuid = "f6369f11-7733-5829-9624-2563aa707210" +version = "0.10.38" +weakdeps = ["StaticArrays"] + + [deps.ForwardDiff.extensions] + ForwardDiffStaticArraysExt = "StaticArrays" + +[[deps.FunctionWrappers]] +git-tree-sha1 = "d62485945ce5ae9c0c48f124a84998d755bae00e" +uuid = "069b7b12-0de2-55c6-9aab-29f3d0a68a2e" +version = "1.1.3" + +[[deps.FunctionWrappersWrappers]] +deps = ["FunctionWrappers"] +git-tree-sha1 = "b104d487b34566608f8b4e1c39fb0b10aa279ff8" +uuid = "77dc65aa-8811-40c2-897b-53d922fa7daf" +version = "0.1.3" + +[[deps.Functors]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "64d8e93700c7a3f28f717d265382d52fac9fa1c1" +uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" +version = "0.4.12" + +[[deps.Future]] +deps = ["Random"] +uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" +version = "1.11.0" + +[[deps.GPUArrays]] +deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"] +git-tree-sha1 = "62ee71528cca49be797076a76bdc654a170a523e" +uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" +version = "10.3.1" + +[[deps.GPUArraysCore]] +deps = ["Adapt"] +git-tree-sha1 = "ec632f177c0d990e64d955ccc1b8c04c485a0950" +uuid = "46192b85-c4d5-4398-a991-12ede77f4527" +version = "0.1.6" + +[[deps.GenericLinearAlgebra]] +deps = ["LinearAlgebra", "Printf", "Random", "libblastrampoline_jll"] +git-tree-sha1 = "c4f9c87b74aedf20920034bd4db81d0bffc527d2" +uuid = "14197337-ba66-59df-a3e3-ca00e7dcff7a" +version = "0.3.14" + +[[deps.GenericSchur]] +deps = ["LinearAlgebra", "Printf"] +git-tree-sha1 = "af49a0851f8113fcfae2ef5027c6d49d0acec39b" +uuid = "c145ed77-6b09-5dd9-b285-bf645a82121e" +version = "0.5.4" + +[[deps.GitHub]] +deps = ["Base64", "Dates", "HTTP", "JSON", "MbedTLS", "Sockets", "SodiumSeal", "URIs"] +git-tree-sha1 = "7ee730a8484d673a8ce21d8536acfe6494475994" +uuid = "bc5e4493-9b4d-5f90-b8aa-2b2bcaad7a26" +version = "5.9.0" + +[[deps.Graphs]] +deps = ["ArnoldiMethod", "Compat", "DataStructures", "Distributed", "Inflate", "LinearAlgebra", "Random", "SharedArrays", "SimpleTraits", "SparseArrays", "Statistics"] +git-tree-sha1 = "1dc470db8b1131cfc7fb4c115de89fe391b9e780" +uuid = "86223c79-3864-5bf0-83f7-82e725a168b6" +version = "1.12.0" + +[[deps.HTTP]] +deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] +git-tree-sha1 = "1336e07ba2eb75614c99496501a8f4b233e9fafe" +uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" +version = "1.10.10" + +[[deps.HostCPUFeatures]] +deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"] +git-tree-sha1 = "8e070b599339d622e9a081d17230d74a5c473293" +uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0" +version = "0.1.17" + +[[deps.HybridArrays]] +deps = ["LinearAlgebra", "Requires", "StaticArrays"] +git-tree-sha1 = "6c3e57bc26728b99f470b267a437f0d380eac4fc" +uuid = "1baab800-613f-4b0a-84e4-9cd3431bfbb9" +version = "0.4.16" + +[[deps.HypergeometricFunctions]] +deps = ["LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] +git-tree-sha1 = "b1c2585431c382e3fe5805874bda6aea90a95de9" +uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" +version = "0.3.25" + +[[deps.IRTools]] +deps = ["InteractiveUtils", "MacroTools"] +git-tree-sha1 = "950c3717af761bc3ff906c2e8e52bd83390b6ec2" +uuid = "7869d1d1-7146-5819-86e3-90919afe41df" +version = "0.4.14" + +[[deps.IfElse]] +git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" +uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" +version = "0.1.1" + +[[deps.Indexing]] +git-tree-sha1 = "ce1566720fd6b19ff3411404d4b977acd4814f9f" +uuid = "313cdc1a-70c2-5d6a-ae34-0150d3930a38" +version = "1.1.1" + +[[deps.Inflate]] +git-tree-sha1 = "d1b1b796e47d94588b3757fe84fbf65a5ec4a80d" +uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" +version = "0.1.5" + +[[deps.InitialValues]] +git-tree-sha1 = "4da0f88e9a39111c2fa3add390ab15f3a44f3ca3" +uuid = "22cec73e-a1b8-11e9-2c92-598750a2cf9c" +version = "0.3.1" + +[[deps.InlineStrings]] +git-tree-sha1 = "45521d31238e87ee9f9732561bfee12d4eebd52d" +uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" +version = "1.4.2" + + [deps.InlineStrings.extensions] + ArrowTypesExt = "ArrowTypes" + ParsersExt = "Parsers" + + [deps.InlineStrings.weakdeps] + ArrowTypes = "31f734f8-188a-4ce0-8406-c8a06bd891cd" + Parsers = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" + +[[deps.InplaceOps]] +deps = ["LinearAlgebra", "Test"] +git-tree-sha1 = "50b41d59e7164ab6fda65e71049fee9d890731ff" +uuid = "505f98c9-085e-5b2c-8e89-488be7bf1f34" +version = "0.3.0" + +[[deps.IntegerMathUtils]] +git-tree-sha1 = "b8ffb903da9f7b8cf695a8bead8e01814aa24b30" +uuid = "18e54dd8-cb9d-406c-a71d-865a43cbb235" +version = "0.1.2" + +[[deps.IntelOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl"] +git-tree-sha1 = "10bd689145d2c3b2a9844005d01087cc1194e79e" +uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" +version = "2024.2.1+0" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" +version = "1.11.0" + +[[deps.Interpolations]] +deps = ["Adapt", "AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "Requires", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] +git-tree-sha1 = "88a101217d7cb38a7b481ccd50d21876e1d1b0e0" +uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" +version = "0.15.1" +weakdeps = ["Unitful"] + + [deps.Interpolations.extensions] + InterpolationsUnitfulExt = "Unitful" + +[[deps.IntervalSets]] +git-tree-sha1 = "dba9ddf07f77f60450fe5d2e2beb9854d9a49bd0" +uuid = "8197267c-284f-5f27-9208-e0e47529a953" +version = "0.7.10" +weakdeps = ["Random", "RecipesBase", "Statistics"] + + [deps.IntervalSets.extensions] + IntervalSetsRandomExt = "Random" + IntervalSetsRecipesBaseExt = "RecipesBase" + IntervalSetsStatisticsExt = "Statistics" + +[[deps.InverseFunctions]] +git-tree-sha1 = "a779299d77cd080bf77b97535acecd73e1c5e5cb" +uuid = "3587e190-3f89-42d0-90ee-14403ec27112" +version = "0.1.17" +weakdeps = ["Dates", "Test"] + + [deps.InverseFunctions.extensions] + InverseFunctionsDatesExt = "Dates" + InverseFunctionsTestExt = "Test" + +[[deps.InvertedIndices]] +git-tree-sha1 = "0dc7b50b8d436461be01300fd8cd45aa0274b038" +uuid = "41ab1584-1d38-5bbf-9106-f11c6c58b48f" +version = "1.3.0" + +[[deps.IrrationalConstants]] +git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" +uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" +version = "0.2.2" + +[[deps.IterTools]] +git-tree-sha1 = "42d5f897009e7ff2cf88db414a389e5ed1bdd023" +uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" +version = "1.10.0" + +[[deps.IteratorInterfaceExtensions]] +git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" +uuid = "82899510-4779-5014-852e-03e436cf321d" +version = "1.0.0" + +[[deps.JLLWrappers]] +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "be3dc50a92e5a386872a493a10050136d4703f9b" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.6.1" + +[[deps.JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.4" + +[[deps.KLU]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] +git-tree-sha1 = "07649c499349dad9f08dde4243a4c597064663e9" +uuid = "ef3ab10e-7fda-4108-b977-705223b18434" +version = "0.6.0" + +[[deps.KernelAbstractions]] +deps = ["Adapt", "Atomix", "InteractiveUtils", "MacroTools", "PrecompileTools", "Requires", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] +git-tree-sha1 = "e73a077abc7fe798fe940deabe30ef6c66bdde52" +uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" +version = "0.9.29" +weakdeps = ["EnzymeCore", "LinearAlgebra", "SparseArrays"] + + [deps.KernelAbstractions.extensions] + EnzymeExt = "EnzymeCore" + LinearAlgebraExt = "LinearAlgebra" + SparseArraysExt = "SparseArrays" + +[[deps.KernelDensity]] +deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] +git-tree-sha1 = "7d703202e65efa1369de1279c162b915e245eed1" +uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" +version = "0.6.9" + +[[deps.Kronecker]] +deps = ["LinearAlgebra", "NamedDims", "SparseArrays", "StatsBase"] +git-tree-sha1 = "9253429e28cceae6e823bec9ffde12460d79bb38" +uuid = "2c470bb0-bcc8-11e8-3dad-c9649493f05e" +version = "0.5.5" + +[[deps.Krylov]] +deps = ["LinearAlgebra", "Printf", "SparseArrays"] +git-tree-sha1 = "4f20a2df85a9e5d55c9e84634bbf808ed038cabd" +uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" +version = "0.9.8" + +[[deps.LBFGSB]] +deps = ["L_BFGS_B_jll"] +git-tree-sha1 = "e2e6f53ee20605d0ea2be473480b7480bd5091b5" +uuid = "5be7bae1-8223-5378-bac3-9e7378a2f6e6" +version = "0.4.1" + +[[deps.LLVM]] +deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Unicode"] +git-tree-sha1 = "d422dfd9707bec6617335dc2ea3c5172a87d5908" +uuid = "929cbde3-209d-540e-8aea-75f648917ca0" +version = "9.1.3" + + [deps.LLVM.extensions] + BFloat16sExt = "BFloat16s" + + [deps.LLVM.weakdeps] + BFloat16s = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" + +[[deps.LLVMExtra_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] +git-tree-sha1 = "05a8bd5a42309a9ec82f700876903abce1017dd3" +uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" +version = "0.0.34+0" + +[[deps.LRUCache]] +git-tree-sha1 = "b3cc6698599b10e652832c2f23db3cab99d51b59" +uuid = "8ac3fa9e-de4c-5943-b1dc-09c6b5f20637" +version = "1.6.1" +weakdeps = ["Serialization"] + + [deps.LRUCache.extensions] + SerializationExt = ["Serialization"] + +[[deps.L_BFGS_B_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "77feda930ed3f04b2b0fbb5bea89e69d3677c6b0" +uuid = "81d17ec3-03a1-5e46-b53e-bddc35a13473" +version = "3.0.1+0" + +[[deps.LaTeXStrings]] +git-tree-sha1 = "dda21b8cbd6a6c40d9d02a73230f9d70fed6918c" +uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +version = "1.4.0" + +[[deps.Latexify]] +deps = ["Format", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Requires"] +git-tree-sha1 = "ce5f5621cac23a86011836badfedf664a612cee4" +uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" +version = "0.16.5" + + [deps.Latexify.extensions] + DataFramesExt = "DataFrames" + SparseArraysExt = "SparseArrays" + SymEngineExt = "SymEngine" + + [deps.Latexify.weakdeps] + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + SymEngine = "123dc426-2d89-5057-bbad-38513e3affd8" + +[[deps.LayoutPointers]] +deps = ["ArrayInterface", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface"] +git-tree-sha1 = "a9eaadb366f5493a5654e843864c13d8b107548c" +uuid = "10f19ff3-798f-405d-979b-55457f8fc047" +version = "0.1.17" + +[[deps.LazyArrays]] +deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "MacroTools", "SparseArrays"] +git-tree-sha1 = "376bc148ae72e68a08f0d5d8a69e287025a37687" +uuid = "5078a376-72f3-5289-bfd5-ec5146d43c02" +version = "2.2.2" + + [deps.LazyArrays.extensions] + LazyArraysBandedMatricesExt = "BandedMatrices" + LazyArraysBlockArraysExt = "BlockArrays" + LazyArraysBlockBandedMatricesExt = "BlockBandedMatrices" + LazyArraysStaticArraysExt = "StaticArrays" + + [deps.LazyArrays.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + +[[deps.LazyArtifacts]] +deps = ["Artifacts", "Pkg"] +uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" +version = "1.11.0" + +[[deps.LeftChildRightSiblingTrees]] +deps = ["AbstractTrees"] +git-tree-sha1 = "fb6803dafae4a5d62ea5cab204b1e657d9737e7f" +uuid = "1d6d02ad-be62-4b6b-8a6d-2f90e265016e" +version = "0.2.0" + +[[deps.LibCURL]] +deps = ["LibCURL_jll", "MozillaCACerts_jll"] +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" +version = "0.6.4" + +[[deps.LibCURL_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" +version = "8.6.0+0" + +[[deps.LibGit2]] +deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" +version = "1.11.0" + +[[deps.LibGit2_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"] +uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5" +version = "1.7.2+0" + +[[deps.LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" +version = "1.11.0+1" + +[[deps.Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" +version = "1.11.0" + +[[deps.Libtask]] +deps = ["FunctionWrappers", "LRUCache", "LinearAlgebra", "Statistics"] +git-tree-sha1 = "902ece54b0cb5c5413a8a15db0ad2aa2ec4172d2" +uuid = "6f1fad26-d15e-5dc8-ae53-837a1d7b8c9f" +version = "0.8.8" + +[[deps.LineSearches]] +deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] +git-tree-sha1 = "e4c3be53733db1051cc15ecf573b1042b3a712a1" +uuid = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" +version = "7.3.0" + +[[deps.LinearAlgebra]] +deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +version = "1.11.0" + +[[deps.LinearMaps]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "ee79c3208e55786de58f8dcccca098ced79f743f" +uuid = "7a12625a-238d-50fd-b39a-03d52299707e" +version = "3.11.3" +weakdeps = ["ChainRulesCore", "SparseArrays", "Statistics"] + + [deps.LinearMaps.extensions] + LinearMapsChainRulesCoreExt = "ChainRulesCore" + LinearMapsSparseArraysExt = "SparseArrays" + LinearMapsStatisticsExt = "Statistics" + +[[deps.LinearSolve]] +deps = ["ArrayInterface", "ChainRulesCore", "ConcreteStructs", "DocStringExtensions", "EnumX", "FastLapackInterface", "GPUArraysCore", "InteractiveUtils", "KLU", "Krylov", "LazyArrays", "Libdl", "LinearAlgebra", "MKL_jll", "Markdown", "PrecompileTools", "Preferences", "RecursiveFactorization", "Reexport", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Sparspak", "StaticArraysCore", "UnPack"] +git-tree-sha1 = "6c5e4555ac2bc449a28604e184f759d18fc08420" +uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" +version = "2.34.0" + + [deps.LinearSolve.extensions] + LinearSolveBandedMatricesExt = "BandedMatrices" + LinearSolveBlockDiagonalsExt = "BlockDiagonals" + LinearSolveCUDAExt = "CUDA" + LinearSolveCUDSSExt = "CUDSS" + LinearSolveEnzymeExt = ["Enzyme", "EnzymeCore"] + LinearSolveFastAlmostBandedMatricesExt = ["FastAlmostBandedMatrices"] + LinearSolveHYPREExt = "HYPRE" + LinearSolveIterativeSolversExt = "IterativeSolvers" + LinearSolveKernelAbstractionsExt = "KernelAbstractions" + LinearSolveKrylovKitExt = "KrylovKit" + LinearSolveMetalExt = "Metal" + LinearSolvePardisoExt = "Pardiso" + LinearSolveRecursiveArrayToolsExt = "RecursiveArrayTools" + + [deps.LinearSolve.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockDiagonals = "0a1fb500-61f7-11e9-3c65-f5ef3456f9f0" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + CUDSS = "45b445bb-4962-46a0-9369-b4df9d0f772e" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + FastAlmostBandedMatrices = "9d29842c-ecb8-4973-b1e9-a27b1157504e" + HYPRE = "b5ffcf37-a2bd-41ab-a3da-4bd9bc8ad771" + IterativeSolvers = "42fd0dbc-a981-5370-80f2-aaf504508153" + KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c" + KrylovKit = "0b1a1467-8014-51b9-945f-bf0ae24f4b77" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + Pardiso = "46dd5b70-b6fb-5a00-ae2d-e8fea33afaf2" + RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" + +[[deps.LogDensityProblems]] +deps = ["ArgCheck", "DocStringExtensions", "Random"] +git-tree-sha1 = "4e0128c1590d23a50dcdb106c7e2dbca99df85c0" +uuid = "6fdf6af0-433a-55f7-b3ed-c6c6e0b8df7c" +version = "2.1.2" + +[[deps.LogDensityProblemsAD]] +deps = ["DocStringExtensions", "LogDensityProblems"] +git-tree-sha1 = "40fd43cc5dd3fe76cf67f033b69e073207a91b7e" +uuid = "996a588d-648d-4e1f-a8f0-a84b347e47b1" +version = "1.12.0" + + [deps.LogDensityProblemsAD.extensions] + LogDensityProblemsADADTypesExt = "ADTypes" + LogDensityProblemsADDifferentiationInterfaceExt = ["ADTypes", "DifferentiationInterface"] + LogDensityProblemsADEnzymeExt = "Enzyme" + LogDensityProblemsADFiniteDifferencesExt = "FiniteDifferences" + LogDensityProblemsADForwardDiffBenchmarkToolsExt = ["BenchmarkTools", "ForwardDiff"] + LogDensityProblemsADForwardDiffExt = "ForwardDiff" + LogDensityProblemsADReverseDiffExt = "ReverseDiff" + LogDensityProblemsADTrackerExt = "Tracker" + LogDensityProblemsADZygoteExt = "Zygote" + + [deps.LogDensityProblemsAD.weakdeps] + ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" + BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" + DifferentiationInterface = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + FiniteDifferences = "26cc04aa-876d-5657-8c51-4c34ba976000" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.LogExpFunctions]] +deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "a2d09619db4e765091ee5c6ffe8872849de0feea" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "0.3.28" +weakdeps = ["ChainRulesCore", "ChangesOfVariables", "InverseFunctions"] + + [deps.LogExpFunctions.extensions] + LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" + LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables" + LogExpFunctionsInverseFunctionsExt = "InverseFunctions" + +[[deps.Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" +version = "1.11.0" + +[[deps.LoggingExtras]] +deps = ["Dates", "Logging"] +git-tree-sha1 = "f02b56007b064fbfddb4c9cd60161b6dd0f40df3" +uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" +version = "1.1.0" + +[[deps.LoopVectorization]] +deps = ["ArrayInterface", "CPUSummary", "CloseOpenIntervals", "DocStringExtensions", "HostCPUFeatures", "IfElse", "LayoutPointers", "LinearAlgebra", "OffsetArrays", "PolyesterWeave", "PrecompileTools", "SIMDTypes", "SLEEFPirates", "Static", "StaticArrayInterface", "ThreadingUtilities", "UnPack", "VectorizationBase"] +git-tree-sha1 = "8084c25a250e00ae427a379a5b607e7aed96a2dd" +uuid = "bdcacae8-1622-11e9-2a5c-532679323890" +version = "0.12.171" +weakdeps = ["ChainRulesCore", "ForwardDiff", "SpecialFunctions"] + + [deps.LoopVectorization.extensions] + ForwardDiffExt = ["ChainRulesCore", "ForwardDiff"] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.MCMCChains]] +deps = ["AbstractMCMC", "AxisArrays", "Dates", "Distributions", "IteratorInterfaceExtensions", "KernelDensity", "LinearAlgebra", "MCMCDiagnosticTools", "MLJModelInterface", "NaturalSort", "OrderedCollections", "PrettyTables", "Random", "RecipesBase", "Statistics", "StatsBase", "StatsFuns", "TableTraits", "Tables"] +git-tree-sha1 = "d28056379864318172ff4b7958710cfddd709339" +uuid = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" +version = "6.0.6" + +[[deps.MCMCDiagnosticTools]] +deps = ["AbstractFFTs", "DataAPI", "DataStructures", "Distributions", "LinearAlgebra", "MLJModelInterface", "Random", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns", "Tables"] +git-tree-sha1 = "8ba8b1840d3ab5b38e7c71c23c3193bb5cbc02b5" +uuid = "be115224-59cd-429b-ad48-344e309966f0" +version = "0.3.10" + +[[deps.MKL_jll]] +deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "oneTBB_jll"] +git-tree-sha1 = "f046ccd0c6db2832a9f639e2c669c6fe867e5f4f" +uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" +version = "2024.2.0+0" + +[[deps.MLJModelInterface]] +deps = ["Random", "ScientificTypesBase", "StatisticalTraits"] +git-tree-sha1 = "ceaff6618408d0e412619321ae43b33b40c1a733" +uuid = "e80e1ace-859a-464e-9ed9-23947d8ae3ea" +version = "1.11.0" + +[[deps.MLStyle]] +git-tree-sha1 = "bc38dff0548128765760c79eb7388a4b37fae2c8" +uuid = "d8e11817-5142-5d16-987a-aa16d5891078" +version = "0.4.17" + +[[deps.MacroTools]] +deps = ["Markdown", "Random"] +git-tree-sha1 = "2fa9ee3e63fd3a4f7a9a4f4744a52f4856de82df" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.13" + +[[deps.ManifoldDiff]] +deps = ["LinearAlgebra", "ManifoldsBase", "Markdown", "Random", "Requires"] +git-tree-sha1 = "98f62a403fe67e32d69a25f9e7b2c8c7ad04f9cc" +uuid = "af67fdf4-a580-4b9f-bbec-742ef357defd" +version = "0.3.13" + + [deps.ManifoldDiff.extensions] + ManifoldDiffFiniteDiffExt = "FiniteDiff" + ManifoldDiffFiniteDifferencesExt = "FiniteDifferences" + ManifoldDiffForwardDiffExt = "ForwardDiff" + ManifoldDiffReverseDiffExt = "ReverseDiff" + ManifoldDiffZygoteExt = "Zygote" + + [deps.ManifoldDiff.weakdeps] + FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41" + FiniteDifferences = "26cc04aa-876d-5657-8c51-4c34ba976000" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.Manifolds]] +deps = ["Distributions", "Einsum", "Graphs", "HybridArrays", "Kronecker", "LinearAlgebra", "ManifoldDiff", "ManifoldsBase", "Markdown", "MatrixEquations", "Quaternions", "Random", "RecursiveArrayTools", "Requires", "SimpleWeightedGraphs", "SpecialFunctions", "StaticArrays", "Statistics", "StatsBase"] +git-tree-sha1 = "58eb09899273a3ed17aae1f56435f440669b810c" +uuid = "1cead3c2-87b3-11e9-0ccd-23c62b72b94e" +version = "0.9.20" + + [deps.Manifolds.extensions] + ManifoldsBoundaryValueDiffEqExt = "BoundaryValueDiffEq" + ManifoldsNLsolveExt = "NLsolve" + ManifoldsOrdinaryDiffEqDiffEqCallbacksExt = ["DiffEqCallbacks", "OrdinaryDiffEq"] + ManifoldsOrdinaryDiffEqExt = "OrdinaryDiffEq" + ManifoldsRecipesBaseExt = ["Colors", "RecipesBase"] + ManifoldsTestExt = "Test" + + [deps.Manifolds.weakdeps] + BoundaryValueDiffEq = "764a87c0-6b3e-53db-9096-fe964310641d" + Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" + DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def" + NLsolve = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" + OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" + RecipesBase = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.ManifoldsBase]] +deps = ["LinearAlgebra", "Markdown", "Printf", "Random", "Requires"] +git-tree-sha1 = "74aed86f1a52d17a82a15c3fe4cabb312f8cce48" +uuid = "3362f125-f0bb-47a3-aa74-596ffd7ef2fb" +version = "0.15.21" + + [deps.ManifoldsBase.extensions] + ManifoldsBasePlotsExt = "Plots" + ManifoldsBaseQuaternionsExt = "Quaternions" + ManifoldsBaseRecursiveArrayToolsExt = "RecursiveArrayTools" + ManifoldsBaseStatisticsExt = "Statistics" + + [deps.ManifoldsBase.weakdeps] + Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" + Quaternions = "94ee1d12-ae83-5a48-8b1c-48b8ff168ae0" + RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" + Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" + +[[deps.ManualMemory]] +git-tree-sha1 = "bcaef4fc7a0cfe2cba636d84cda54b5e4e4ca3cd" +uuid = "d125e4d3-2237-4719-b19c-fa641b8a4667" +version = "0.1.8" + +[[deps.MappedArrays]] +git-tree-sha1 = "2dab0221fe2b0f2cb6754eaa743cc266339f527e" +uuid = "dbb5928d-eab1-5f90-85c2-b9b0edb7c900" +version = "0.4.2" + +[[deps.Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" +version = "1.11.0" + +[[deps.MatrixEquations]] +deps = ["LinearAlgebra", "LinearMaps"] +git-tree-sha1 = "f765b4eda3ea9be8e644b9127809ca5151f3d9ea" +uuid = "99c1a7ee-ab34-5fd5-8076-27c950a045f4" +version = "2.4.2" + +[[deps.MaybeInplace]] +deps = ["ArrayInterface", "LinearAlgebra", "MacroTools"] +git-tree-sha1 = "54e2fdc38130c05b42be423e90da3bade29b74bd" +uuid = "bb5d69b7-63fc-4a16-80bd-7e42200c7bdb" +version = "0.1.4" +weakdeps = ["SparseArrays"] + + [deps.MaybeInplace.extensions] + MaybeInplaceSparseArraysExt = "SparseArrays" + +[[deps.MbedTLS]] +deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] +git-tree-sha1 = "c067a280ddc25f196b5e7df3877c6b226d390aaf" +uuid = "739be429-bea8-5141-9913-cc70e7f3736d" +version = "1.1.9" + +[[deps.MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.6+0" + +[[deps.MicroCollections]] +deps = ["Accessors", "BangBang", "InitialValues"] +git-tree-sha1 = "44d32db644e84c75dab479f1bc15ee76a1a3618f" +uuid = "128add7d-3638-4c79-886c-908ea0c25c34" +version = "0.2.0" + +[[deps.Missings]] +deps = ["DataAPI"] +git-tree-sha1 = "ec4f7fbeab05d7747bdf98eb74d130a2a2ed298d" +uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" +version = "1.2.0" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" +version = "1.11.0" + +[[deps.MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" +version = "2023.12.12" + +[[deps.MuladdMacro]] +git-tree-sha1 = "cac9cc5499c25554cba55cd3c30543cff5ca4fab" +uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" +version = "0.2.4" + +[[deps.MultivariatePolynomials]] +deps = ["ChainRulesCore", "DataStructures", "LinearAlgebra", "MutableArithmetics"] +git-tree-sha1 = "8d39779e29f80aa6c071e7ac17101c6e31f075d7" +uuid = "102ac46a-7ee4-5c85-9060-abc95bfdeaa3" +version = "0.5.7" + +[[deps.MutableArithmetics]] +deps = ["LinearAlgebra", "SparseArrays", "Test"] +git-tree-sha1 = "90077f1e79de8c9c7c8a90644494411111f4e07b" +uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" +version = "1.5.2" + +[[deps.NLSolversBase]] +deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"] +git-tree-sha1 = "a0b464d183da839699f4c79e7606d9d186ec172c" +uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" +version = "7.8.3" + +[[deps.NNlib]] +deps = ["Adapt", "Atomix", "ChainRulesCore", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Random", "Statistics"] +git-tree-sha1 = "da09a1e112fd75f9af2a5229323f01b56ec96a4c" +uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" +version = "0.9.24" + + [deps.NNlib.extensions] + NNlibAMDGPUExt = "AMDGPU" + NNlibCUDACUDNNExt = ["CUDA", "cuDNN"] + NNlibCUDAExt = "CUDA" + NNlibEnzymeCoreExt = "EnzymeCore" + NNlibFFTWExt = "FFTW" + NNlibForwardDiffExt = "ForwardDiff" + + [deps.NNlib.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + FFTW = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" + +[[deps.NaNMath]] +deps = ["OpenLibm_jll"] +git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "1.0.2" + +[[deps.NamedArrays]] +deps = ["Combinatorics", "DataStructures", "DelimitedFiles", "InvertedIndices", "LinearAlgebra", "Random", "Requires", "SparseArrays", "Statistics"] +git-tree-sha1 = "58e317b3b956b8aaddfd33ff4c3e33199cd8efce" +uuid = "86f7a689-2022-50b4-a561-43c23ac3c673" +version = "0.10.3" + +[[deps.NamedDims]] +deps = ["LinearAlgebra", "Pkg", "Statistics"] +git-tree-sha1 = "90178dc801073728b8b2d0d8677d10909feb94d8" +uuid = "356022a1-0364-5f58-8944-0da4b18d706f" +version = "1.2.2" + + [deps.NamedDims.extensions] + AbstractFFTsExt = "AbstractFFTs" + ChainRulesCoreExt = "ChainRulesCore" + CovarianceEstimationExt = "CovarianceEstimation" + TrackerExt = "Tracker" + + [deps.NamedDims.weakdeps] + AbstractFFTs = "621f4979-c628-5d54-868e-fcf4e3e8185c" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + CovarianceEstimation = "587fd27a-f159-11e8-2dae-1979310e6154" + Requires = "ae029012-a4dd-5104-9daa-d747884805df" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.NaturalSort]] +git-tree-sha1 = "eda490d06b9f7c00752ee81cfa451efe55521e21" +uuid = "c020b1a1-e9b0-503a-9c33-f039bfc54a85" +version = "1.0.0" + +[[deps.NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" +version = "1.2.0" + +[[deps.NonlinearSolve]] +deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "DiffEqBase", "FastBroadcast", "FastClosures", "FiniteDiff", "ForwardDiff", "LazyArrays", "LineSearches", "LinearAlgebra", "LinearSolve", "MaybeInplace", "PrecompileTools", "Preferences", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SparseArrays", "SparseDiffTools", "StaticArraysCore", "SymbolicIndexingInterface", "TimerOutputs"] +git-tree-sha1 = "bcd8812e751326ff1d4b2dd50764b93df51f143b" +uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" +version = "3.14.0" + + [deps.NonlinearSolve.extensions] + NonlinearSolveBandedMatricesExt = "BandedMatrices" + NonlinearSolveFastLevenbergMarquardtExt = "FastLevenbergMarquardt" + NonlinearSolveFixedPointAccelerationExt = "FixedPointAcceleration" + NonlinearSolveLeastSquaresOptimExt = "LeastSquaresOptim" + NonlinearSolveMINPACKExt = "MINPACK" + NonlinearSolveNLSolversExt = "NLSolvers" + NonlinearSolveNLsolveExt = "NLsolve" + NonlinearSolveSIAMFANLEquationsExt = "SIAMFANLEquations" + NonlinearSolveSpeedMappingExt = "SpeedMapping" + NonlinearSolveSymbolicsExt = "Symbolics" + NonlinearSolveZygoteExt = "Zygote" + + [deps.NonlinearSolve.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + FastLevenbergMarquardt = "7a0df574-e128-4d35-8cbd-3d84502bf7ce" + FixedPointAcceleration = "817d07cb-a79a-5c30-9a31-890123675176" + LeastSquaresOptim = "0fc2ff8b-aaa3-5acd-a817-1944a5e08891" + MINPACK = "4854310b-de5a-5eb6-a2a5-c1dee2bd17f9" + NLSolvers = "337daf1e-9722-11e9-073e-8b9effe078ba" + NLsolve = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" + SIAMFANLEquations = "084e46ad-d928-497d-ad5e-07fa361a48c4" + SpeedMapping = "f1835b91-879b-4a3f-a438-e4baacf14412" + Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.OffsetArrays]] +git-tree-sha1 = "1a27764e945a152f7ca7efa04de513d473e9542e" +uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" +version = "1.14.1" +weakdeps = ["Adapt"] + + [deps.OffsetArrays.extensions] + OffsetArraysAdaptExt = "Adapt" + +[[deps.OpenBLAS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] +uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" +version = "0.3.27+1" + +[[deps.OpenLibm_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "05823500-19ac-5b8b-9628-191a04bc5112" +version = "0.8.1+2" + +[[deps.OpenSSL]] +deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] +git-tree-sha1 = "38cb508d080d21dc1128f7fb04f20387ed4c0af4" +uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" +version = "1.4.3" + +[[deps.OpenSSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "7493f61f55a6cce7325f197443aa80d32554ba10" +uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" +version = "3.0.15+1" + +[[deps.OpenSpecFun_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" +uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" +version = "0.5.5+0" + +[[deps.Optim]] +deps = ["Compat", "FillArrays", "ForwardDiff", "LineSearches", "LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "PositiveFactorizations", "Printf", "SparseArrays", "StatsBase"] +git-tree-sha1 = "ab7edad78cdef22099f43c54ef77ac63c2c9cc64" +uuid = "429524aa-4258-5aef-a3af-852621145aeb" +version = "1.10.0" + + [deps.Optim.extensions] + OptimMOIExt = "MathOptInterface" + + [deps.Optim.weakdeps] + MathOptInterface = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" + +[[deps.Optimisers]] +deps = ["ChainRulesCore", "Functors", "LinearAlgebra", "Random", "Statistics"] +git-tree-sha1 = "f555c1f8c6f75b10d31f94132d4acb4cbf0bdeef" +uuid = "3bd65402-5787-11e9-1adc-39752487f4e2" +version = "0.4.0" + +[[deps.Optimization]] +deps = ["ADTypes", "ArrayInterface", "ConsoleProgressMonitor", "DocStringExtensions", "LBFGSB", "LinearAlgebra", "Logging", "LoggingExtras", "OptimizationBase", "Printf", "ProgressLogging", "Reexport", "SciMLBase", "SparseArrays", "TerminalLoggers"] +git-tree-sha1 = "0b2a631276dc92ab147535689fa43f1e22a657b8" +uuid = "7f7a1694-90dd-40f0-9382-eb1efda571ba" +version = "3.28.0" + +[[deps.OptimizationBase]] +deps = ["ADTypes", "ArrayInterface", "DocStringExtensions", "LinearAlgebra", "PDMats", "Reexport", "Requires", "SciMLBase", "SparseArrays", "SymbolicAnalysis", "SymbolicIndexingInterface", "Symbolics"] +git-tree-sha1 = "3e5e5e8cbe572200dcd94a6084a63ca68fe76279" +uuid = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" +version = "1.5.0" + + [deps.OptimizationBase.extensions] + OptimizationEnzymeExt = "Enzyme" + OptimizationFiniteDiffExt = "FiniteDiff" + OptimizationForwardDiffExt = "ForwardDiff" + OptimizationMTKExt = "ModelingToolkit" + OptimizationReverseDiffExt = "ReverseDiff" + OptimizationSparseDiffExt = ["SparseDiffTools", "ReverseDiff"] + OptimizationTrackerExt = "Tracker" + OptimizationZygoteExt = "Zygote" + + [deps.OptimizationBase.weakdeps] + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + SparseDiffTools = "47a9eef4-7e08-11e9-0b38-333d64bd3804" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.OptimizationOptimJL]] +deps = ["Optim", "Optimization", "Reexport", "SparseArrays"] +git-tree-sha1 = "43870d726f883a47d158beebb1fc3c9fab1da9d6" +uuid = "36348300-93cb-4f02-beb5-3c3902f8871e" +version = "0.3.2" + +[[deps.OrderedCollections]] +git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.6.3" + +[[deps.OrdinaryDiffEq]] +deps = ["ADTypes", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "EnumX", "ExponentialUtilities", "FastBroadcast", "FastClosures", "FillArrays", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "InteractiveUtils", "LineSearches", "LinearAlgebra", "LinearSolve", "Logging", "MacroTools", "MuladdMacro", "NonlinearSolve", "OrdinaryDiffEqAdamsBashforthMoulton", "OrdinaryDiffEqBDF", "OrdinaryDiffEqCore", "OrdinaryDiffEqDefault", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqExplicitRK", "OrdinaryDiffEqExponentialRK", "OrdinaryDiffEqExtrapolation", "OrdinaryDiffEqFIRK", "OrdinaryDiffEqFeagin", "OrdinaryDiffEqFunctionMap", "OrdinaryDiffEqHighOrderRK", "OrdinaryDiffEqIMEXMultistep", "OrdinaryDiffEqLinear", "OrdinaryDiffEqLowOrderRK", "OrdinaryDiffEqLowStorageRK", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqNordsieck", "OrdinaryDiffEqPDIRK", "OrdinaryDiffEqPRK", "OrdinaryDiffEqQPRK", "OrdinaryDiffEqRKN", "OrdinaryDiffEqRosenbrock", "OrdinaryDiffEqSDIRK", "OrdinaryDiffEqSSPRK", "OrdinaryDiffEqStabilizedIRK", "OrdinaryDiffEqStabilizedRK", "OrdinaryDiffEqSymplecticRK", "OrdinaryDiffEqTsit5", "OrdinaryDiffEqVerner", "Polyester", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SciMLStructures", "SimpleNonlinearSolve", "SimpleUnPack", "SparseArrays", "SparseDiffTools", "Static", "StaticArrayInterface", "StaticArrays", "TruncatedStacktraces"] +git-tree-sha1 = "36ce9bfc14a4b3dcf1490e80b5f1f4d35bfddf39" +uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" +version = "6.90.1" + +[[deps.OrdinaryDiffEqAdamsBashforthMoulton]] +deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqLowOrderRK", "Polyester", "RecursiveArrayTools", "Reexport", "Static"] +git-tree-sha1 = "8e3c5978d0531a961f70d2f2730d1d16ed3bbd12" +uuid = "89bda076-bce5-4f1c-845f-551c83cdda9a" +version = "1.1.0" + +[[deps.OrdinaryDiffEqBDF]] +deps = ["ArrayInterface", "DiffEqBase", "FastBroadcast", "LinearAlgebra", "MacroTools", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqSDIRK", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "StaticArrays", "TruncatedStacktraces"] +git-tree-sha1 = "b4498d40bf35da0b6d22652ff2e9d8820590b3c6" +uuid = "6ad6398a-0878-4a85-9266-38940aa047c8" +version = "1.1.2" + +[[deps.OrdinaryDiffEqCore]] +deps = ["ADTypes", "Accessors", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "EnumX", "FastBroadcast", "FastClosures", "FastPower", "FillArrays", "FunctionWrappersWrappers", "InteractiveUtils", "LinearAlgebra", "Logging", "MacroTools", "MuladdMacro", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SciMLStructures", "SimpleUnPack", "Static", "StaticArrayInterface", "StaticArraysCore", "SymbolicIndexingInterface", "TruncatedStacktraces"] +git-tree-sha1 = "6f86041d5978ce3574f022f4098e0c216e2a3395" +uuid = "bbf590c4-e513-4bbe-9b18-05decba2e5d8" +version = "1.10.2" +weakdeps = ["EnzymeCore"] + + [deps.OrdinaryDiffEqCore.extensions] + OrdinaryDiffEqCoreEnzymeCoreExt = "EnzymeCore" + +[[deps.OrdinaryDiffEqDefault]] +deps = ["DiffEqBase", "EnumX", "LinearAlgebra", "LinearSolve", "OrdinaryDiffEqBDF", "OrdinaryDiffEqCore", "OrdinaryDiffEqRosenbrock", "OrdinaryDiffEqTsit5", "OrdinaryDiffEqVerner", "PrecompileTools", "Preferences", "Reexport"] +git-tree-sha1 = "c8223e487d58bef28a3535b33ddf8ffdb44f46fb" +uuid = "50262376-6c5a-4cf5-baba-aaf4f84d72d7" +version = "1.1.0" + +[[deps.OrdinaryDiffEqDifferentiation]] +deps = ["ADTypes", "ArrayInterface", "DiffEqBase", "FastBroadcast", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "LinearAlgebra", "LinearSolve", "OrdinaryDiffEqCore", "SciMLBase", "SparseArrays", "SparseDiffTools", "StaticArrayInterface", "StaticArrays"] +git-tree-sha1 = "8977f283a7d89c5d5c06c933467ed4af0a99f2f7" +uuid = "4302a76b-040a-498a-8c04-15b101fed76b" +version = "1.2.0" + +[[deps.OrdinaryDiffEqExplicitRK]] +deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "TruncatedStacktraces"] +git-tree-sha1 = "4dbce3f9e6974567082ce5176e21aab0224a69e9" +uuid = "9286f039-9fbf-40e8-bf65-aa933bdc4db0" +version = "1.1.0" + +[[deps.OrdinaryDiffEqExponentialRK]] +deps = ["DiffEqBase", "ExponentialUtilities", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqSDIRK", "OrdinaryDiffEqVerner", "RecursiveArrayTools", "Reexport", "SciMLBase"] +git-tree-sha1 = "f63938b8e9e5d3a05815defb3ebdbdcf61ec0a74" +uuid = "e0540318-69ee-4070-8777-9e2de6de23de" +version = "1.1.0" + +[[deps.OrdinaryDiffEqExtrapolation]] +deps = ["DiffEqBase", "FastBroadcast", "FastPower", "LinearSolve", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "Polyester", "RecursiveArrayTools", "Reexport"] +git-tree-sha1 = "048bcccc8f59c20d5b4ad268eef4d7d21c005a94" +uuid = "becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4" +version = "1.2.1" + +[[deps.OrdinaryDiffEqFIRK]] +deps = ["DiffEqBase", "FastBroadcast", "FastPower", "GenericLinearAlgebra", "GenericSchur", "LinearAlgebra", "LinearSolve", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "Polynomials", "RecursiveArrayTools", "Reexport", "RootedTrees", "SciMLOperators", "Symbolics"] +git-tree-sha1 = "1dcf5bebc5179c1c119a7a30f99bbb93eec02d44" +uuid = "5960d6e9-dd7a-4743-88e7-cf307b64f125" +version = "1.3.0" + +[[deps.OrdinaryDiffEqFeagin]] +deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "RecursiveArrayTools", "Reexport", "Static"] +git-tree-sha1 = "a7cc74d3433db98e59dc3d58bc28174c6c290adf" +uuid = "101fe9f7-ebb6-4678-b671-3a81e7194747" +version = "1.1.0" + +[[deps.OrdinaryDiffEqFunctionMap]] +deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] +git-tree-sha1 = "925a91583d1ab84f1f0fea121be1abf1179c5926" +uuid = "d3585ca7-f5d3-4ba6-8057-292ed1abd90f" +version = "1.1.1" + +[[deps.OrdinaryDiffEqHighOrderRK]] +deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "Static"] +git-tree-sha1 = "103e017ff186ac39d731904045781c9bacfca2b0" +uuid = "d28bc4f8-55e1-4f49-af69-84c1a99f0f58" +version = "1.1.0" + +[[deps.OrdinaryDiffEqIMEXMultistep]] +deps = ["DiffEqBase", "FastBroadcast", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "Reexport"] +git-tree-sha1 = "9f8f52aad2399d7714b400ff9d203254b0a89c4a" +uuid = "9f002381-b378-40b7-97a6-27a27c83f129" +version = "1.1.0" + +[[deps.OrdinaryDiffEqLinear]] +deps = ["DiffEqBase", "ExponentialUtilities", "LinearAlgebra", "OrdinaryDiffEqCore", "OrdinaryDiffEqTsit5", "OrdinaryDiffEqVerner", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators"] +git-tree-sha1 = "0f81a77ede3da0dc714ea61e81c76b25db4ab87a" +uuid = "521117fe-8c41-49f8-b3b6-30780b3f0fb5" +version = "1.1.0" + +[[deps.OrdinaryDiffEqLowOrderRK]] +deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] +git-tree-sha1 = "d4bb32e09d6b68ce2eb45fb81001eab46f60717a" +uuid = "1344f307-1e59-4825-a18e-ace9aa3fa4c6" +version = "1.2.0" + +[[deps.OrdinaryDiffEqLowStorageRK]] +deps = ["Adapt", "DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "Static", "StaticArrays"] +git-tree-sha1 = "590561f3af623d5485d070b4d7044f8854535f5a" +uuid = "b0944070-b475-4768-8dec-fb6eb410534d" +version = "1.2.1" + +[[deps.OrdinaryDiffEqNonlinearSolve]] +deps = ["ADTypes", "ArrayInterface", "DiffEqBase", "FastBroadcast", "FastClosures", "ForwardDiff", "LinearAlgebra", "LinearSolve", "MuladdMacro", "NonlinearSolve", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "PreallocationTools", "RecursiveArrayTools", "SciMLBase", "SciMLOperators", "SciMLStructures", "SimpleNonlinearSolve", "StaticArrays"] +git-tree-sha1 = "5e1b316555fa95892edc13f6a429ac784d0be4dd" +uuid = "127b3ac7-2247-4354-8eb6-78cf4e7c58e8" +version = "1.2.4" + +[[deps.OrdinaryDiffEqNordsieck]] +deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqTsit5", "Polyester", "RecursiveArrayTools", "Reexport", "Static"] +git-tree-sha1 = "ef44754f10e0dfb9bb55ded382afed44cd94ab57" +uuid = "c9986a66-5c92-4813-8696-a7ec84c806c8" +version = "1.1.0" + +[[deps.OrdinaryDiffEqPDIRK]] +deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "Polyester", "Reexport", "StaticArrays"] +git-tree-sha1 = "a8b7f8107c477e07c6a6c00d1d66cac68b801bbc" +uuid = "5dd0a6cf-3d4b-4314-aa06-06d4e299bc89" +version = "1.1.0" + +[[deps.OrdinaryDiffEqPRK]] +deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "Reexport"] +git-tree-sha1 = "da525d277962a1b76102c79f30cb0c31e13fe5b9" +uuid = "5b33eab2-c0f1-4480-b2c3-94bc1e80bda1" +version = "1.1.0" + +[[deps.OrdinaryDiffEqQPRK]] +deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "Static"] +git-tree-sha1 = "332f9d17d0229218f66a73492162267359ba85e9" +uuid = "04162be5-8125-4266-98ed-640baecc6514" +version = "1.1.0" + +[[deps.OrdinaryDiffEqRKN]] +deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "RecursiveArrayTools", "Reexport"] +git-tree-sha1 = "41c09d9c20877546490f907d8dffdd52690dd65f" +uuid = "af6ede74-add8-4cfd-b1df-9a4dbb109d7a" +version = "1.1.0" + +[[deps.OrdinaryDiffEqRosenbrock]] +deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "MacroTools", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "Static"] +git-tree-sha1 = "760a51a626d0065455847e4a3f788b07e86e5090" +uuid = "43230ef6-c299-4910-a778-202eb28ce4ce" +version = "1.3.1" + +[[deps.OrdinaryDiffEqSDIRK]] +deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MacroTools", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "RecursiveArrayTools", "Reexport", "SciMLBase", "TruncatedStacktraces"] +git-tree-sha1 = "f6683803a58de600ab7a26d2f49411c9923e9721" +uuid = "2d112036-d095-4a1e-ab9a-08536f3ecdbf" +version = "1.1.0" + +[[deps.OrdinaryDiffEqSSPRK]] +deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "Static", "StaticArrays"] +git-tree-sha1 = "7dbe4ac56f930df5e9abd003cedb54e25cbbea86" +uuid = "669c94d9-1f4b-4b64-b377-1aa079aa2388" +version = "1.2.0" + +[[deps.OrdinaryDiffEqStabilizedIRK]] +deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "RecursiveArrayTools", "Reexport", "StaticArrays"] +git-tree-sha1 = "348fd6def9a88518715425025eadd58517017325" +uuid = "e3e12d00-db14-5390-b879-ac3dd2ef6296" +version = "1.1.0" + +[[deps.OrdinaryDiffEqStabilizedRK]] +deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "StaticArrays"] +git-tree-sha1 = "1b0d894c880e25f7d0b022d7257638cf8ce5b311" +uuid = "358294b1-0aab-51c3-aafe-ad5ab194a2ad" +version = "1.1.0" + +[[deps.OrdinaryDiffEqSymplecticRK]] +deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "RecursiveArrayTools", "Reexport"] +git-tree-sha1 = "4e8b8c8b81df3df17e2eb4603115db3b30a88235" +uuid = "fa646aed-7ef9-47eb-84c4-9443fc8cbfa8" +version = "1.1.0" + +[[deps.OrdinaryDiffEqTsit5]] +deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "Static", "TruncatedStacktraces"] +git-tree-sha1 = "96552f7d4619fabab4038a29ed37dd55e9eb513a" +uuid = "b1df2697-797e-41e3-8120-5422d3b24e4a" +version = "1.1.0" + +[[deps.OrdinaryDiffEqVerner]] +deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "Static", "TruncatedStacktraces"] +git-tree-sha1 = "81d7841e73e385b9925d5c8e4427f2adcdda55db" +uuid = "79d7bb75-1356-48c1-b8c0-6832512096c2" +version = "1.1.1" + +[[deps.PDMats]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "949347156c25054de2db3b166c52ac4728cbad65" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.11.31" + +[[deps.PSIS]] +deps = ["LinearAlgebra", "LogExpFunctions", "Printf", "RecipesBase", "Statistics"] +git-tree-sha1 = "08598dfcf5dd14db4425641abfc301b817b921f0" +uuid = "ce719bf2-d5d0-4fb9-925d-10a81b42ad04" +version = "0.9.6" + +[[deps.PackageExtensionCompat]] +git-tree-sha1 = "fb28e33b8a95c4cee25ce296c817d89cc2e53518" +uuid = "65ce6f38-6b18-4e1d-a461-8949797d7930" +version = "1.0.2" +weakdeps = ["Requires", "TOML"] + +[[deps.Parameters]] +deps = ["OrderedCollections", "UnPack"] +git-tree-sha1 = "34c0e9ad262e5f7fc75b10a9952ca7692cfc5fbe" +uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a" +version = "0.12.3" + +[[deps.Parsers]] +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.8.1" + +[[deps.Pathfinder]] +deps = ["ADTypes", "Distributions", "Folds", "IrrationalConstants", "LinearAlgebra", "LogDensityProblems", "LogDensityProblemsAD", "Optim", "Optimization", "OptimizationOptimJL", "PDMats", "PSIS", "ProgressLogging", "Random", "Requires", "SciMLBase", "Statistics", "StatsBase", "Transducers", "UnPack"] +git-tree-sha1 = "4207ff39e325bd90056ef58ce2584666129fbca9" +uuid = "b1d3bc72-d0e7-4279-b92f-7fa5d6d2d454" +version = "0.9.5" + + [deps.Pathfinder.extensions] + PathfinderDynamicHMCExt = "DynamicHMC" + PathfinderTuringExt = ["Accessors", "DynamicPPL", "MCMCChains", "Turing"] + + [deps.Pathfinder.weakdeps] + Accessors = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" + DynamicHMC = "bbc10e6e-7c05-544b-b16e-64fede858acb" + DynamicPPL = "366bfd00-2699-11ea-058f-f148b4cae6d8" + MCMCChains = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" + Turing = "fce5fe82-541a-59a6-adf8-730c64b5f9a0" + +[[deps.Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "Random", "SHA", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +version = "1.11.0" + + [deps.Pkg.extensions] + REPLExt = "REPL" + + [deps.Pkg.weakdeps] + REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[deps.PkgBenchmark]] +deps = ["BenchmarkTools", "Dates", "InteractiveUtils", "JSON", "LibGit2", "Logging", "Pkg", "Printf", "TerminalLoggers", "UUIDs"] +git-tree-sha1 = "e4a10b7cdb7ec836850e43a4cee196f4e7b02756" +uuid = "32113eaa-f34f-5b0d-bd6c-c81e245fc73d" +version = "0.2.12" + +[[deps.Polyester]] +deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] +git-tree-sha1 = "6d38fea02d983051776a856b7df75b30cf9a3c1f" +uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" +version = "0.7.16" + +[[deps.PolyesterWeave]] +deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] +git-tree-sha1 = "645bed98cd47f72f67316fd42fc47dee771aefcd" +uuid = "1d0040c9-8b98-4ee7-8388-3f51789ca0ad" +version = "0.2.2" + +[[deps.Polynomials]] +deps = ["LinearAlgebra", "RecipesBase", "Requires", "Setfield", "SparseArrays"] +git-tree-sha1 = "1a9cfb2dc2c2f1bd63f1906d72af39a79b49b736" +uuid = "f27b6e38-b328-58d1-80ce-0feddd5e7a45" +version = "4.0.11" + + [deps.Polynomials.extensions] + PolynomialsChainRulesCoreExt = "ChainRulesCore" + PolynomialsFFTWExt = "FFTW" + PolynomialsMakieCoreExt = "MakieCore" + PolynomialsMutableArithmeticsExt = "MutableArithmetics" + + [deps.Polynomials.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + FFTW = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" + MakieCore = "20f20a25-4f0e-4fdf-b5d1-57303727442b" + MutableArithmetics = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" + +[[deps.PooledArrays]] +deps = ["DataAPI", "Future"] +git-tree-sha1 = "36d8b4b899628fb92c2749eb488d884a926614d3" +uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720" +version = "1.4.3" + +[[deps.PositiveFactorizations]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "17275485f373e6673f7e7f97051f703ed5b15b20" +uuid = "85a6dd25-e78a-55b7-8502-1745935b8125" +version = "0.2.4" + +[[deps.PreallocationTools]] +deps = ["Adapt", "ArrayInterface", "ForwardDiff"] +git-tree-sha1 = "6c62ce45f268f3f958821a1e5192cf91c75ae89c" +uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" +version = "0.4.24" +weakdeps = ["ReverseDiff"] + + [deps.PreallocationTools.extensions] + PreallocationToolsReverseDiffExt = "ReverseDiff" + +[[deps.PrecompileTools]] +deps = ["Preferences"] +git-tree-sha1 = "5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f" +uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" +version = "1.2.1" + +[[deps.Preferences]] +deps = ["TOML"] +git-tree-sha1 = "9306f6085165d270f7e3db02af26a400d580f5c6" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.4.3" + +[[deps.PrettyTables]] +deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "Reexport", "StringManipulation", "Tables"] +git-tree-sha1 = "1101cd475833706e4d0e7b122218257178f48f34" +uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" +version = "2.4.0" + +[[deps.Primes]] +deps = ["IntegerMathUtils"] +git-tree-sha1 = "cb420f77dc474d23ee47ca8d14c90810cafe69e7" +uuid = "27ebfcd6-29c5-5fa9-bf4b-fb8fc14df3ae" +version = "0.5.6" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" +version = "1.11.0" + +[[deps.Profile]] +uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" +version = "1.11.0" + +[[deps.ProgressLogging]] +deps = ["Logging", "SHA", "UUIDs"] +git-tree-sha1 = "80d919dee55b9c50e8d9e2da5eeafff3fe58b539" +uuid = "33c8b6b6-d38a-422a-b730-caa89a2f386c" +version = "0.1.4" + +[[deps.ProgressMeter]] +deps = ["Distributed", "Printf"] +git-tree-sha1 = "8f6bc219586aef8baf0ff9a5fe16ee9c70cb65e4" +uuid = "92933f4c-e287-5a05-a399-4b506db050ca" +version = "1.10.2" + +[[deps.PtrArrays]] +git-tree-sha1 = "77a42d78b6a92df47ab37e177b2deac405e1c88f" +uuid = "43287f4e-b6f4-7ad1-bb20-aadabca52c3d" +version = "1.2.1" + +[[deps.QuadGK]] +deps = ["DataStructures", "LinearAlgebra"] +git-tree-sha1 = "cda3b045cf9ef07a08ad46731f5a3165e56cf3da" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.11.1" + + [deps.QuadGK.extensions] + QuadGKEnzymeExt = "Enzyme" + + [deps.QuadGK.weakdeps] + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + +[[deps.Quaternions]] +deps = ["LinearAlgebra", "Random", "RealDot"] +git-tree-sha1 = "994cc27cdacca10e68feb291673ec3a76aa2fae9" +uuid = "94ee1d12-ae83-5a48-8b1c-48b8ff168ae0" +version = "0.7.6" + +[[deps.Random]] +deps = ["SHA"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" +version = "1.11.0" + +[[deps.Random123]] +deps = ["Random", "RandomNumbers"] +git-tree-sha1 = "4743b43e5a9c4a2ede372de7061eed81795b12e7" +uuid = "74087812-796a-5b5d-8853-05524746bad3" +version = "1.7.0" + +[[deps.RandomNumbers]] +deps = ["Random"] +git-tree-sha1 = "c6ec94d2aaba1ab2ff983052cf6a606ca5985902" +uuid = "e6cf234a-135c-5ec9-84dd-332b85af5143" +version = "1.6.0" + +[[deps.RangeArrays]] +git-tree-sha1 = "b9039e93773ddcfc828f12aadf7115b4b4d225f5" +uuid = "b3c3ace0-ae52-54e7-9d0b-2c1406fd6b9d" +version = "0.3.2" + +[[deps.Ratios]] +deps = ["Requires"] +git-tree-sha1 = "1342a47bf3260ee108163042310d26f2be5ec90b" +uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439" +version = "0.4.5" + + [deps.Ratios.extensions] + RatiosFixedPointNumbersExt = "FixedPointNumbers" + + [deps.Ratios.weakdeps] + FixedPointNumbers = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" + +[[deps.RealDot]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "9f0a1b71baaf7650f4fa8a1d168c7fb6ee41f0c9" +uuid = "c1ae055f-0cd5-4b69-90a6-9a35b1a98df9" +version = "0.1.0" + +[[deps.RecipesBase]] +deps = ["PrecompileTools"] +git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" +uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" +version = "1.3.4" + +[[deps.RecursiveArrayTools]] +deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] +git-tree-sha1 = "6f4dca5fd8e97087a76b7ab8384d1c3086ace0b7" +uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" +version = "3.27.3" + + [deps.RecursiveArrayTools.extensions] + RecursiveArrayToolsFastBroadcastExt = "FastBroadcast" + RecursiveArrayToolsForwardDiffExt = "ForwardDiff" + RecursiveArrayToolsMeasurementsExt = "Measurements" + RecursiveArrayToolsMonteCarloMeasurementsExt = "MonteCarloMeasurements" + RecursiveArrayToolsReverseDiffExt = ["ReverseDiff", "Zygote"] + RecursiveArrayToolsSparseArraysExt = ["SparseArrays"] + RecursiveArrayToolsTrackerExt = "Tracker" + RecursiveArrayToolsZygoteExt = "Zygote" + + [deps.RecursiveArrayTools.weakdeps] + FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.RecursiveFactorization]] +deps = ["LinearAlgebra", "LoopVectorization", "Polyester", "PrecompileTools", "StrideArraysCore", "TriangularSolve"] +git-tree-sha1 = "6db1a75507051bc18bfa131fbc7c3f169cc4b2f6" +uuid = "f2c3362d-daeb-58d1-803e-2bc74f2840b4" +version = "0.2.23" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" + +[[deps.Referenceables]] +deps = ["Adapt"] +git-tree-sha1 = "02d31ad62838181c1a3a5fd23a1ce5914a643601" +uuid = "42d2dcc6-99eb-4e98-b66c-637b7d73030e" +version = "0.1.3" + +[[deps.Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.3.0" + +[[deps.ReverseDiff]] +deps = ["ChainRulesCore", "DiffResults", "DiffRules", "ForwardDiff", "FunctionWrappers", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NaNMath", "Random", "SpecialFunctions", "StaticArrays", "Statistics"] +git-tree-sha1 = "cc6cd622481ea366bb9067859446a8b01d92b468" +uuid = "37e2e3b7-166d-5795-8a7a-e32c996b4267" +version = "1.15.3" + +[[deps.Rmath]] +deps = ["Random", "Rmath_jll"] +git-tree-sha1 = "852bd0f55565a9e973fcfee83a84413270224dc4" +uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" +version = "0.8.0" + +[[deps.Rmath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "58cdd8fb2201a6267e1db87ff148dd6c1dbd8ad8" +uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" +version = "0.5.1+0" + +[[deps.RootedTrees]] +deps = ["LaTeXStrings", "Latexify", "LinearAlgebra", "Preferences", "RecipesBase", "Requires"] +git-tree-sha1 = "c0c464d3063e46e4128d21fd677ca575ace44fdc" +uuid = "47965b36-3f3e-11e9-0dcf-4570dfd42a8c" +version = "2.23.1" + + [deps.RootedTrees.extensions] + PlotsExt = "Plots" + + [deps.RootedTrees.weakdeps] + Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" + +[[deps.Roots]] +deps = ["Accessors", "CommonSolve", "Printf"] +git-tree-sha1 = "3a7c7e5c3f015415637f5debdf8a674aa2c979c4" +uuid = "f2b01f46-fcfa-551c-844a-d8ac1e96c665" +version = "2.2.1" + + [deps.Roots.extensions] + RootsChainRulesCoreExt = "ChainRulesCore" + RootsForwardDiffExt = "ForwardDiff" + RootsIntervalRootFindingExt = "IntervalRootFinding" + RootsSymPyExt = "SymPy" + RootsSymPyPythonCallExt = "SymPyPythonCall" + + [deps.Roots.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + IntervalRootFinding = "d2bf35a9-74e0-55ec-b149-d360ff49b807" + SymPy = "24249f21-da20-56a4-8eb1-6a02cf4ae2e6" + SymPyPythonCall = "bc8888f7-b21e-4b7c-a06a-5d9c9496438c" + +[[deps.RuntimeGeneratedFunctions]] +deps = ["ExprTools", "SHA", "Serialization"] +git-tree-sha1 = "04c968137612c4a5629fa531334bb81ad5680f00" +uuid = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" +version = "0.5.13" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.7.0" + +[[deps.SIMDTypes]] +git-tree-sha1 = "330289636fb8107c5f32088d2741e9fd7a061a5c" +uuid = "94e857df-77ce-4151-89e5-788b33177be4" +version = "0.1.0" + +[[deps.SLEEFPirates]] +deps = ["IfElse", "Static", "VectorizationBase"] +git-tree-sha1 = "456f610ca2fbd1c14f5fcf31c6bfadc55e7d66e0" +uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" +version = "0.6.43" + +[[deps.SSMProblems]] +deps = ["AbstractMCMC"] +git-tree-sha1 = "f640e4e8343c9d5f470e2f6ca6ce79f708ab6376" +uuid = "26aad666-b158-4e64-9d35-0e672562fa48" +version = "0.1.1" + +[[deps.SciMLBase]] +deps = ["ADTypes", "Accessors", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "Expronicon", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "SciMLStructures", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface"] +git-tree-sha1 = "cacc7bc54bab8749b1fc1032c4911fe80cffb959" +uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +version = "2.61.0" + + [deps.SciMLBase.extensions] + SciMLBaseChainRulesCoreExt = "ChainRulesCore" + SciMLBaseMakieExt = "Makie" + SciMLBasePartialFunctionsExt = "PartialFunctions" + SciMLBasePyCallExt = "PyCall" + SciMLBasePythonCallExt = "PythonCall" + SciMLBaseRCallExt = "RCall" + SciMLBaseZygoteExt = "Zygote" + + [deps.SciMLBase.weakdeps] + ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" + PartialFunctions = "570af359-4316-4cb7-8c74-252c00c2016b" + PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" + PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" + RCall = "6f49c342-dc21-5d91-9882-a32aef131414" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.SciMLOperators]] +deps = ["Accessors", "ArrayInterface", "DocStringExtensions", "LinearAlgebra", "MacroTools"] +git-tree-sha1 = "6149620767866d4b0f0f7028639b6e661b6a1e44" +uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" +version = "0.3.12" +weakdeps = ["SparseArrays", "StaticArraysCore"] + + [deps.SciMLOperators.extensions] + SciMLOperatorsSparseArraysExt = "SparseArrays" + SciMLOperatorsStaticArraysCoreExt = "StaticArraysCore" + +[[deps.SciMLStructures]] +deps = ["ArrayInterface"] +git-tree-sha1 = "25514a6f200219cd1073e4ff23a6324e4a7efe64" +uuid = "53ae85a6-f571-4167-b2af-e1d143709226" +version = "1.5.0" + +[[deps.ScientificTypesBase]] +git-tree-sha1 = "a8e18eb383b5ecf1b5e6fc237eb39255044fd92b" +uuid = "30f210dd-8aff-4c5f-94ba-8e64358c1161" +version = "3.0.0" + +[[deps.SentinelArrays]] +deps = ["Dates", "Random"] +git-tree-sha1 = "d0553ce4031a081cc42387a9b9c8441b7d99f32d" +uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" +version = "1.4.7" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" +version = "1.11.0" + +[[deps.Setfield]] +deps = ["ConstructionBase", "Future", "MacroTools", "StaticArraysCore"] +git-tree-sha1 = "e2cc6d8c88613c05e1defb55170bf5ff211fbeac" +uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" +version = "1.1.1" + +[[deps.SharedArrays]] +deps = ["Distributed", "Mmap", "Random", "Serialization"] +uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" +version = "1.11.0" + +[[deps.SimpleBufferStream]] +git-tree-sha1 = "f305871d2f381d21527c770d4788c06c097c9bc1" +uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" +version = "1.2.0" + +[[deps.SimpleNonlinearSolve]] +deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "DiffEqBase", "DiffResults", "DifferentiationInterface", "FastClosures", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "MaybeInplace", "PrecompileTools", "Reexport", "SciMLBase", "Setfield", "StaticArraysCore"] +git-tree-sha1 = "44021f3efc023be3871195d8ad98b865001a2fa1" +uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" +version = "1.12.3" +weakdeps = ["ChainRulesCore", "ReverseDiff", "Tracker", "Zygote"] + + [deps.SimpleNonlinearSolve.extensions] + SimpleNonlinearSolveChainRulesCoreExt = "ChainRulesCore" + SimpleNonlinearSolveReverseDiffExt = "ReverseDiff" + SimpleNonlinearSolveTrackerExt = "Tracker" + SimpleNonlinearSolveZygoteExt = "Zygote" + +[[deps.SimpleTraits]] +deps = ["InteractiveUtils", "MacroTools"] +git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" +uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" +version = "0.9.4" + +[[deps.SimpleUnPack]] +git-tree-sha1 = "58e6353e72cde29b90a69527e56df1b5c3d8c437" +uuid = "ce78b400-467f-4804-87d8-8f486da07d0a" +version = "1.1.0" + +[[deps.SimpleWeightedGraphs]] +deps = ["Graphs", "LinearAlgebra", "Markdown", "SparseArrays"] +git-tree-sha1 = "4b33e0e081a825dbfaf314decf58fa47e53d6acb" +uuid = "47aef6b3-ad0c-573a-a1e2-d07658019622" +version = "1.4.0" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" +version = "1.11.0" + +[[deps.SodiumSeal]] +deps = ["Base64", "Libdl", "libsodium_jll"] +git-tree-sha1 = "80cef67d2953e33935b41c6ab0a178b9987b1c99" +uuid = "2133526b-2bfb-4018-ac12-889fb3908a75" +version = "0.1.1" + +[[deps.SortingAlgorithms]] +deps = ["DataStructures"] +git-tree-sha1 = "66e0a8e672a0bdfca2c3f5937efb8538b9ddc085" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "1.2.1" + +[[deps.SparseArrays]] +deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +version = "1.11.0" + +[[deps.SparseDiffTools]] +deps = ["ADTypes", "Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "PackageExtensionCompat", "Random", "Reexport", "SciMLOperators", "Setfield", "SparseArrays", "StaticArrayInterface", "StaticArrays", "UnPack", "VertexSafeGraphs"] +git-tree-sha1 = "b906758c107b049b6b71599b9f928d9b14e5554a" +uuid = "47a9eef4-7e08-11e9-0b38-333d64bd3804" +version = "2.23.0" + + [deps.SparseDiffTools.extensions] + SparseDiffToolsEnzymeExt = "Enzyme" + SparseDiffToolsPolyesterExt = "Polyester" + SparseDiffToolsPolyesterForwardDiffExt = "PolyesterForwardDiff" + SparseDiffToolsSymbolicsExt = "Symbolics" + SparseDiffToolsZygoteExt = "Zygote" + + [deps.SparseDiffTools.weakdeps] + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" + PolyesterForwardDiff = "98d1487c-24ca-40b6-b7ab-df2af84e126b" + Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.SparseInverseSubset]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "52962839426b75b3021296f7df242e40ecfc0852" +uuid = "dc90abb0-5640-4711-901d-7e5b23a2fada" +version = "0.1.2" + +[[deps.Sparspak]] +deps = ["Libdl", "LinearAlgebra", "Logging", "OffsetArrays", "Printf", "SparseArrays", "Test"] +git-tree-sha1 = "342cf4b449c299d8d1ceaf00b7a49f4fbc7940e7" +uuid = "e56a9233-b9d6-4f03-8d0f-1825330902ac" +version = "0.3.9" + +[[deps.SpecialFunctions]] +deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "2f5d4697f21388cbe1ff299430dd169ef97d7e14" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "2.4.0" +weakdeps = ["ChainRulesCore"] + + [deps.SpecialFunctions.extensions] + SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" + +[[deps.SplittablesBase]] +deps = ["Setfield", "Test"] +git-tree-sha1 = "e08a62abc517eb79667d0a29dc08a3b589516bb5" +uuid = "171d559e-b47b-412a-8079-5efa626c420e" +version = "0.1.15" + +[[deps.Static]] +deps = ["CommonWorldInvalidations", "IfElse", "PrecompileTools"] +git-tree-sha1 = "87d51a3ee9a4b0d2fe054bdd3fc2436258db2603" +uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" +version = "1.1.1" + +[[deps.StaticArrayInterface]] +deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "Static"] +git-tree-sha1 = "96381d50f1ce85f2663584c8e886a6ca97e60554" +uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" +version = "1.8.0" +weakdeps = ["OffsetArrays", "StaticArrays"] + + [deps.StaticArrayInterface.extensions] + StaticArrayInterfaceOffsetArraysExt = "OffsetArrays" + StaticArrayInterfaceStaticArraysExt = "StaticArrays" + +[[deps.StaticArrays]] +deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] +git-tree-sha1 = "777657803913ffc7e8cc20f0fd04b634f871af8f" +uuid = "90137ffa-7385-5640-81b9-e52037218182" +version = "1.9.8" +weakdeps = ["ChainRulesCore", "Statistics"] + + [deps.StaticArrays.extensions] + StaticArraysChainRulesCoreExt = "ChainRulesCore" + StaticArraysStatisticsExt = "Statistics" + +[[deps.StaticArraysCore]] +git-tree-sha1 = "192954ef1208c7019899fbf8049e717f92959682" +uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" +version = "1.4.3" + +[[deps.StatisticalTraits]] +deps = ["ScientificTypesBase"] +git-tree-sha1 = "542d979f6e756f13f862aa00b224f04f9e445f11" +uuid = "64bff920-2084-43da-a3e6-9bb72801c0c9" +version = "3.4.0" + +[[deps.Statistics]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "ae3bb1eb3bba077cd276bc5cfc337cc65c3075c0" +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +version = "1.11.1" +weakdeps = ["SparseArrays"] + + [deps.Statistics.extensions] + SparseArraysExt = ["SparseArrays"] + +[[deps.StatsAPI]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" +uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" +version = "1.7.0" + +[[deps.StatsBase]] +deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "5cf7606d6cef84b543b483848d4ae08ad9832b21" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.34.3" + +[[deps.StatsFuns]] +deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] +git-tree-sha1 = "b423576adc27097764a90e163157bcfc9acf0f46" +uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +version = "1.3.2" +weakdeps = ["ChainRulesCore", "InverseFunctions"] + + [deps.StatsFuns.extensions] + StatsFunsChainRulesCoreExt = "ChainRulesCore" + StatsFunsInverseFunctionsExt = "InverseFunctions" + +[[deps.StrideArraysCore]] +deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface", "ThreadingUtilities"] +git-tree-sha1 = "f35f6ab602df8413a50c4a25ca14de821e8605fb" +uuid = "7792a7ef-975c-4747-a70f-980b88e8d1da" +version = "0.5.7" + +[[deps.StringManipulation]] +deps = ["PrecompileTools"] +git-tree-sha1 = "a6b1675a536c5ad1a60e5a5153e1fee12eb146e3" +uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" +version = "0.4.0" + +[[deps.StructArrays]] +deps = ["ConstructionBase", "DataAPI", "Tables"] +git-tree-sha1 = "f4dc295e983502292c4c3f951dbb4e985e35b3be" +uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" +version = "0.6.18" +weakdeps = ["Adapt", "GPUArraysCore", "SparseArrays", "StaticArrays"] + + [deps.StructArrays.extensions] + StructArraysAdaptExt = "Adapt" + StructArraysGPUArraysCoreExt = "GPUArraysCore" + StructArraysSparseArraysExt = "SparseArrays" + StructArraysStaticArraysExt = "StaticArrays" + +[[deps.SuiteSparse]] +deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] +uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" + +[[deps.SuiteSparse_jll]] +deps = ["Artifacts", "Libdl", "libblastrampoline_jll"] +uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" +version = "7.7.0+0" + +[[deps.SymbolicAnalysis]] +deps = ["DSP", "DataStructures", "Dictionaries", "Distributions", "DomainSets", "IfElse", "LinearAlgebra", "LogExpFunctions", "Manifolds", "PDMats", "RecursiveArrayTools", "StatsBase", "SymbolicUtils", "Symbolics"] +git-tree-sha1 = "64f26bb4a666bb97baa16f063164ade83ca29ec9" +uuid = "4297ee4d-0239-47d8-ba5d-195ecdf594fe" +version = "0.3.0" + +[[deps.SymbolicIndexingInterface]] +deps = ["Accessors", "ArrayInterface", "RuntimeGeneratedFunctions", "StaticArraysCore"] +git-tree-sha1 = "6c6761e08bf5a270905cdd065be633abfa1b155b" +uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" +version = "0.3.35" + +[[deps.SymbolicLimits]] +deps = ["SymbolicUtils"] +git-tree-sha1 = "fabf4650afe966a2ba646cabd924c3fd43577fc3" +uuid = "19f23fe9-fdab-4a78-91af-e7b7767979c3" +version = "0.2.2" + +[[deps.SymbolicUtils]] +deps = ["AbstractTrees", "ArrayInterface", "Bijections", "ChainRulesCore", "Combinatorics", "ConstructionBase", "DataStructures", "DocStringExtensions", "DynamicPolynomials", "IfElse", "LinearAlgebra", "MultivariatePolynomials", "NaNMath", "Setfield", "SparseArrays", "SpecialFunctions", "StaticArrays", "SymbolicIndexingInterface", "TermInterface", "TimerOutputs", "Unityper"] +git-tree-sha1 = "04e9157537ba51dad58336976f8d04b9ab7122f0" +uuid = "d1185830-fcd6-423d-90d6-eec64667417b" +version = "3.7.2" + + [deps.SymbolicUtils.extensions] + SymbolicUtilsLabelledArraysExt = "LabelledArrays" + SymbolicUtilsReverseDiffExt = "ReverseDiff" + + [deps.SymbolicUtils.weakdeps] + LabelledArrays = "2ee39098-c373-598a-b85f-a56591580800" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + +[[deps.Symbolics]] +deps = ["ADTypes", "ArrayInterface", "Bijections", "CommonWorldInvalidations", "ConstructionBase", "DataStructures", "DiffRules", "Distributions", "DocStringExtensions", "DomainSets", "DynamicPolynomials", "IfElse", "LaTeXStrings", "Latexify", "Libdl", "LinearAlgebra", "LogExpFunctions", "MacroTools", "Markdown", "NaNMath", "PrecompileTools", "Primes", "RecipesBase", "Reexport", "RuntimeGeneratedFunctions", "SciMLBase", "Setfield", "SparseArrays", "SpecialFunctions", "StaticArraysCore", "SymbolicIndexingInterface", "SymbolicLimits", "SymbolicUtils", "TermInterface"] +git-tree-sha1 = "24e006074ef13894ed23d006f55e6082998c9035" +uuid = "0c5d862f-8b57-4792-8d23-62f2024744c7" +version = "6.19.0" + + [deps.Symbolics.extensions] + SymbolicsForwardDiffExt = "ForwardDiff" + SymbolicsGroebnerExt = "Groebner" + SymbolicsLuxExt = "Lux" + SymbolicsNemoExt = "Nemo" + SymbolicsPreallocationToolsExt = ["PreallocationTools", "ForwardDiff"] + SymbolicsSymPyExt = "SymPy" + + [deps.Symbolics.weakdeps] + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + Groebner = "0b43b601-686d-58a3-8a1c-6623616c7cd4" + Lux = "b2108857-7c20-44ae-9111-449ecde12c47" + Nemo = "2edaba10-b0f1-5616-af89-8c11ac63239a" + PreallocationTools = "d236fae5-4411-538c-8e31-a6e3d9e00b46" + SymPy = "24249f21-da20-56a4-8eb1-6a02cf4ae2e6" + +[[deps.TOML]] +deps = ["Dates"] +uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" +version = "1.0.3" + +[[deps.TableMetadataTools]] +deps = ["DataAPI", "Dates", "TOML", "Tables", "Unitful"] +git-tree-sha1 = "c0405d3f8189bb9a9755e429c6ea2138fca7e31f" +uuid = "9ce81f87-eacc-4366-bf80-b621a3098ee2" +version = "0.1.0" + +[[deps.TableTraits]] +deps = ["IteratorInterfaceExtensions"] +git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" +uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" +version = "1.0.1" + +[[deps.Tables]] +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "598cd7c1f68d1e205689b1c2fe65a9f85846f297" +uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" +version = "1.12.0" + +[[deps.Tar]] +deps = ["ArgTools", "SHA"] +uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" +version = "1.10.0" + +[[deps.TermInterface]] +git-tree-sha1 = "d673e0aca9e46a2f63720201f55cc7b3e7169b16" +uuid = "8ea1fca8-c5ef-4a55-8b96-4e9afe9c9a3c" +version = "2.0.0" + +[[deps.TerminalLoggers]] +deps = ["LeftChildRightSiblingTrees", "Logging", "Markdown", "Printf", "ProgressLogging", "UUIDs"] +git-tree-sha1 = "f133fab380933d042f6796eda4e130272ba520ca" +uuid = "5d786b92-1e48-4d6f-9151-6b4477ca9bed" +version = "0.1.7" + +[[deps.Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" +version = "1.11.0" + +[[deps.ThreadedScans]] +deps = ["ArgCheck"] +git-tree-sha1 = "ca1ba3000289eacba571aaa4efcefb642e7a1de6" +uuid = "24d252fe-5d94-4a69-83ea-56a14333d47a" +version = "0.1.0" + +[[deps.ThreadingUtilities]] +deps = ["ManualMemory"] +git-tree-sha1 = "eda08f7e9818eb53661b3deb74e3159460dfbc27" +uuid = "8290d209-cae3-49c0-8002-c8c24d57dab5" +version = "0.5.2" + +[[deps.TimerOutputs]] +deps = ["ExprTools", "Printf"] +git-tree-sha1 = "3a6f063d690135f5c1ba351412c82bae4d1402bf" +uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" +version = "0.5.25" + +[[deps.Tracker]] +deps = ["Adapt", "ChainRulesCore", "DiffRules", "ForwardDiff", "Functors", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NNlib", "NaNMath", "Optimisers", "Printf", "Random", "Requires", "SpecialFunctions", "Statistics"] +git-tree-sha1 = "c266e49953dadd0923caa17b3ea464ab6b97b3f2" +uuid = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" +version = "0.2.37" +weakdeps = ["PDMats"] + + [deps.Tracker.extensions] + TrackerPDMatsExt = "PDMats" + +[[deps.TranscodingStreams]] +git-tree-sha1 = "0c45878dcfdcfa8480052b6ab162cdd138781742" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.11.3" + +[[deps.Transducers]] +deps = ["Accessors", "ArgCheck", "BangBang", "Baselet", "CompositionsBase", "ConstructionBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "SplittablesBase", "Tables"] +git-tree-sha1 = "7deeab4ff96b85c5f72c824cae53a1398da3d1cb" +uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" +version = "0.4.84" + + [deps.Transducers.extensions] + TransducersAdaptExt = "Adapt" + TransducersBlockArraysExt = "BlockArrays" + TransducersDataFramesExt = "DataFrames" + TransducersLazyArraysExt = "LazyArrays" + TransducersOnlineStatsBaseExt = "OnlineStatsBase" + TransducersReferenceablesExt = "Referenceables" + + [deps.Transducers.weakdeps] + Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" + BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + LazyArrays = "5078a376-72f3-5289-bfd5-ec5146d43c02" + OnlineStatsBase = "925886fa-5bf2-5e8e-b522-a9147a512338" + Referenceables = "42d2dcc6-99eb-4e98-b66c-637b7d73030e" + +[[deps.TriangularSolve]] +deps = ["CloseOpenIntervals", "IfElse", "LayoutPointers", "LinearAlgebra", "LoopVectorization", "Polyester", "Static", "VectorizationBase"] +git-tree-sha1 = "be986ad9dac14888ba338c2554dcfec6939e1393" +uuid = "d5829a12-d9aa-46ab-831f-fb7c9ab06edf" +version = "0.2.1" + +[[deps.TruncatedStacktraces]] +deps = ["InteractiveUtils", "MacroTools", "Preferences"] +git-tree-sha1 = "ea3e54c2bdde39062abf5a9758a23735558705e1" +uuid = "781d530d-4396-4725-bb49-402e4bee1e77" +version = "1.4.0" + +[[deps.Turing]] +deps = ["ADTypes", "AbstractMCMC", "Accessors", "AdvancedHMC", "AdvancedMH", "AdvancedPS", "AdvancedVI", "BangBang", "Bijectors", "Compat", "DataStructures", "Distributions", "DistributionsAD", "DocStringExtensions", "DynamicPPL", "EllipticalSliceSampling", "ForwardDiff", "Libtask", "LinearAlgebra", "LogDensityProblems", "LogDensityProblemsAD", "MCMCChains", "NamedArrays", "Optimization", "OptimizationOptimJL", "OrderedCollections", "Printf", "Random", "Reexport", "Requires", "SciMLBase", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] +git-tree-sha1 = "f69f33f7862a66674c279fe9b86b457a96767e35" +uuid = "fce5fe82-541a-59a6-adf8-730c64b5f9a0" +version = "0.34.1" + + [deps.Turing.extensions] + TuringDynamicHMCExt = "DynamicHMC" + TuringOptimExt = "Optim" + + [deps.Turing.weakdeps] + DynamicHMC = "bbc10e6e-7c05-544b-b16e-64fede858acb" + Optim = "429524aa-4258-5aef-a3af-852621145aeb" + +[[deps.TuringBenchmarking]] +deps = ["ADTypes", "AbstractMCMC", "BenchmarkTools", "DynamicPPL", "ForwardDiff", "LinearAlgebra", "LogDensityProblems", "LogDensityProblemsAD", "PrettyTables", "Requires", "ReverseDiff", "Zygote"] +git-tree-sha1 = "b512c8ab665cb6396f19533b6960cc3e0fc4d556" +uuid = "0db1332d-5c25-4deb-809f-459bc696f94f" +version = "0.5.5" + + [deps.TuringBenchmarking.extensions] + TuringBenchmarkingBridgeStanExt = "BridgeStan" + + [deps.TuringBenchmarking.weakdeps] + BridgeStan = "c88b6f0a-829e-4b0b-94b7-f06ab5908f5a" + +[[deps.URIs]] +git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b" +uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" +version = "1.5.1" + +[[deps.UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" +version = "1.11.0" + +[[deps.UnPack]] +git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b" +uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" +version = "1.0.2" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" +version = "1.11.0" + +[[deps.Unitful]] +deps = ["Dates", "LinearAlgebra", "Random"] +git-tree-sha1 = "d95fe458f26209c66a187b1114df96fd70839efd" +uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" +version = "1.21.0" +weakdeps = ["ConstructionBase", "InverseFunctions"] + + [deps.Unitful.extensions] + ConstructionBaseUnitfulExt = "ConstructionBase" + InverseFunctionsUnitfulExt = "InverseFunctions" + +[[deps.Unityper]] +deps = ["ConstructionBase"] +git-tree-sha1 = "25008b734a03736c41e2a7dc314ecb95bd6bbdb0" +uuid = "a7c27f48-0311-42f6-a7f8-2c11e75eb415" +version = "0.1.6" + +[[deps.UnsafeAtomics]] +git-tree-sha1 = "6331ac3440856ea1988316b46045303bef658278" +uuid = "013be700-e6cd-48c3-b4a1-df204f14c38f" +version = "0.2.1" + +[[deps.UnsafeAtomicsLLVM]] +deps = ["LLVM", "UnsafeAtomics"] +git-tree-sha1 = "2d17fabcd17e67d7625ce9c531fb9f40b7c42ce4" +uuid = "d80eeb9a-aca5-4d75-85e5-170c8b632249" +version = "0.2.1" + +[[deps.VectorizationBase]] +deps = ["ArrayInterface", "CPUSummary", "HostCPUFeatures", "IfElse", "LayoutPointers", "Libdl", "LinearAlgebra", "SIMDTypes", "Static", "StaticArrayInterface"] +git-tree-sha1 = "4ab62a49f1d8d9548a1c8d1a75e5f55cf196f64e" +uuid = "3d5dd08c-fd9d-11e8-17fa-ed2836048c2f" +version = "0.21.71" + +[[deps.VertexSafeGraphs]] +deps = ["Graphs"] +git-tree-sha1 = "8351f8d73d7e880bfc042a8b6922684ebeafb35c" +uuid = "19fa3120-7c27-5ec5-8db8-b0b0aa330d6f" +version = "0.2.0" + +[[deps.WoodburyMatrices]] +deps = ["LinearAlgebra", "SparseArrays"] +git-tree-sha1 = "c1a7aa6219628fcd757dede0ca95e245c5cd9511" +uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" +version = "1.0.0" + +[[deps.Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" +version = "1.2.13+1" + +[[deps.Zstd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "555d1076590a6cc2fdee2ef1469451f872d8b41b" +uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" +version = "1.5.6+1" + +[[deps.Zygote]] +deps = ["AbstractFFTs", "ChainRules", "ChainRulesCore", "DiffRules", "Distributed", "FillArrays", "ForwardDiff", "GPUArrays", "GPUArraysCore", "IRTools", "InteractiveUtils", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NaNMath", "PrecompileTools", "Random", "Requires", "SparseArrays", "SpecialFunctions", "Statistics", "ZygoteRules"] +git-tree-sha1 = "c7dc3148a64d1cd3768c29b3db5972d1c302661b" +uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" +version = "0.6.73" + + [deps.Zygote.extensions] + ZygoteColorsExt = "Colors" + ZygoteDistancesExt = "Distances" + ZygoteTrackerExt = "Tracker" + + [deps.Zygote.weakdeps] + Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" + Distances = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.ZygoteRules]] +deps = ["ChainRulesCore", "MacroTools"] +git-tree-sha1 = "27798139afc0a2afa7b1824c206d5e87ea587a00" +uuid = "700de1a5-db45-46bc-99cf-38207098b444" +version = "0.2.5" + +[[deps.libblastrampoline_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" +version = "5.11.0+0" + +[[deps.libsodium_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f76d682d87eefadd3f165d8d9fda436464213142" +uuid = "a9144af2-ca23-56d9-984f-0d03f7b5ccf8" +version = "1.0.20+1" + +[[deps.nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" +version = "1.59.0+0" + +[[deps.oneTBB_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "7d0ea0f4895ef2f5cb83645fa689e52cb55cf493" +uuid = "1317d2d5-d96f-522e-a858-c73665f53c3e" +version = "2021.12.0+0" + +[[deps.p7zip_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" +version = "17.4.0+2" diff --git a/benchmark/bench/EpiLatentModels/EpiLatentModels.jl b/benchmark/bench/EpiLatentModels/EpiLatentModels.jl index 3d83adb57..b90fb0285 100644 --- a/benchmark/bench/EpiLatentModels/EpiLatentModels.jl +++ b/benchmark/bench/EpiLatentModels/EpiLatentModels.jl @@ -4,7 +4,7 @@ using BenchmarkTools, TuringBenchmarking, EpiAware, DynamicPPL suite = BenchmarkGroup() include("../../make_epiaware_suite.jl") -include("models/IDD.jl") +include("models/IID.jl") include("models/AR.jl") include("models/MA.jl") include("models/RandomWalk.jl") diff --git a/benchmark/bench/EpiLatentModels/models/IDD.jl b/benchmark/bench/EpiLatentModels/models/IDD.jl index 09270d964..180d6566d 100644 --- a/benchmark/bench/EpiLatentModels/models/IDD.jl +++ b/benchmark/bench/EpiLatentModels/models/IDD.jl @@ -1,5 +1,5 @@ let - model = IDD(Normal(0, 1)) + model = IID(Normal(0, 1)) mdl = generate_latent(model, 10) - suite["IDD"] = make_epiaware_suite(mdl) + suite["IID"] = make_epiaware_suite(mdl) end diff --git a/pipeline/src/infer/generate_inference_results.jl b/pipeline/src/infer/generate_inference_results.jl index 03c63d61b..5254feecc 100644 --- a/pipeline/src/infer/generate_inference_results.jl +++ b/pipeline/src/infer/generate_inference_results.jl @@ -26,7 +26,8 @@ function generate_inference_results( prfx = _inference_prefix(truthdata, inference_config, pipeline) _datadir_str = _get_inferencedatadir_str(pipeline) - inference_results, inferencefile = produce_or_load( + inference_results, + inferencefile = produce_or_load( infer, config, _datadir_str; prefix = prfx) return inference_results end @@ -63,7 +64,8 @@ function generate_inference_results( datadir_name = mktempdir() - inference_results, inferencefile = produce_or_load( + inference_results, + inferencefile = produce_or_load( infer, config, datadir_name; prefix = prfx) return inference_results end diff --git a/pipeline/src/infer/inference_helpers.jl b/pipeline/src/infer/inference_helpers.jl index 057afbaa3..e4608702b 100644 --- a/pipeline/src/infer/inference_helpers.jl +++ b/pipeline/src/infer/inference_helpers.jl @@ -61,7 +61,9 @@ end """ Internal method for setting the data directory path for the inference data. """ -_get_inferencedatadir_str(pipeline::AbstractEpiAwarePipeline) = datadir("epiaware_observables") +function _get_inferencedatadir_str(pipeline::AbstractEpiAwarePipeline) + datadir("epiaware_observables") +end function _get_inferencedatadir_str(pipeline::AbstractRtwithoutRenewalPipeline) pipeline.testmode ? mktempdir() : pipeline.priorpredictive ? datadir("priorpredictive") : datadir("epiaware_observables") diff --git a/pipeline/src/plotting/figureone.jl b/pipeline/src/plotting/figureone.jl index e6da279a2..5e05dbc6a 100644 --- a/pipeline/src/plotting/figureone.jl +++ b/pipeline/src/plotting/figureone.jl @@ -20,7 +20,8 @@ function _figure_one_scenario(analysis_df, scenario; reference_time, true_gi_cho model_plotting_data = analysis_df |> df -> @subset(df, :True_GI_Mean.==true_gi_choice) |> df -> @subset(df, :Used_GI_Mean.==used_gi_choice) |> - df -> @subset(df, :Reference_Time.==reference_time) |> + df -> @subset(df, + :Reference_Time.==reference_time) |> df -> @subset(df, :Scenario.==scenario) |> data @@ -141,7 +142,8 @@ function _figure_one_model_panel( model_plotting_data = analysis_df |> df -> @subset(df, :True_GI_Mean.==true_gi_choice) |> df -> @subset(df, :Used_GI_Mean.==used_gi_choice) |> - df -> @subset(df, :Reference_Time.==reference_time) |> + df -> @subset(df, + :Reference_Time.==reference_time) |> df -> @subset(df, :Scenario.==scenario) |> df -> @subset(df, :Target.==target) |> df -> @subset(df, diff --git a/pipeline/src/scoring/summarise_crps.jl b/pipeline/src/scoring/summarise_crps.jl index 1530e846c..9e47f5298 100644 --- a/pipeline/src/scoring/summarise_crps.jl +++ b/pipeline/src/scoring/summarise_crps.jl @@ -13,7 +13,10 @@ function summarise_crps(config, inference_results, forecast_results, epidata) ts = config.tspan[1]:min(config.tspan[2] + config.lookahead, length(config.truth_I_t)) procs_names = (:log_I_t, :rt, :Rt, :I_t, :log_Rt) - scores_log_I_t, scores_rt, scores_Rt, scores_I_t, scores_log_Rt = _process_crps_scores( + scores_log_I_t, scores_rt, + scores_Rt, + scores_I_t, + scores_log_Rt = _process_crps_scores( procs_names, inference_results, forecast_results, config, ts, epidata) scores_y_t, scores_log_y_t = _cases_crps_scores(forecast_results, config, ts) diff --git a/pipeline/src/simulate/generate_truthdata.jl b/pipeline/src/simulate/generate_truthdata.jl index 373d5cb3d..81e2c4543 100644 --- a/pipeline/src/simulate/generate_truthdata.jl +++ b/pipeline/src/simulate/generate_truthdata.jl @@ -68,7 +68,8 @@ function generate_truthdata( cluster_factor = default_params["cluster_factor"], I0 = default_params["I0"]) datadir_str = mktempdir() - truthdata, truthfile = produce_or_load( + truthdata, + truthfile = produce_or_load( simulate, config, datadir(datadir_str); prefix = prefix) if plot plot_truth_data(truthdata, config, pipeline) diff --git a/pipeline/src/utils/timeseries_utils.jl b/pipeline/src/utils/timeseries_utils.jl index ce94e49c2..a3c71d4ae 100644 --- a/pipeline/src/utils/timeseries_utils.jl +++ b/pipeline/src/utils/timeseries_utils.jl @@ -25,8 +25,10 @@ end """ Internal function for reducing a sequence of results from calls to `calculate_processes`. """ -_process_reduction(procs_1, procs_2) = (; log_I_t = hcat(procs_1.log_I_t, procs_2.log_I_t), - Rt = hcat(procs_1.Rt, procs_2.Rt), rt = hcat(procs_1.rt, procs_2.rt)) +function _process_reduction(procs_1, procs_2) + (; log_I_t = hcat(procs_1.log_I_t, procs_2.log_I_t), + Rt = hcat(procs_1.Rt, procs_2.Rt), rt = hcat(procs_1.rt, procs_2.rt)) +end """ Generate quantiles for targets based on the output and EpiData. diff --git a/pipeline/test/plotting/test_plot_funcs.jl b/pipeline/test/plotting/test_plot_funcs.jl index 5dd2aa8c0..61e048227 100644 --- a/pipeline/test/plotting/test_plot_funcs.jl +++ b/pipeline/test/plotting/test_plot_funcs.jl @@ -8,7 +8,8 @@ subdirname = "test" testpipeline = RtwithoutRenewalPriorPipeline() - f, path = plot_truth_data( + f, + path = plot_truth_data( data, config, testpipeline; plotsubdir = subdirname, saveplot = false) @test f isa Figure @test path isa String