From ba02a70d85e25c77396b75468d579eb56c1fc2d8 Mon Sep 17 00:00:00 2001 From: Phillip Alday Date: Thu, 20 Oct 2022 13:20:20 -0500 Subject: [PATCH 01/10] kwarg for optional amalgmate --- issues/638/Manifest.toml | 2 +- issues/638/main.jl | 4 +++ src/linalg/rankUpdate.jl | 9 ++++++ src/linearmixedmodel.jl | 60 ++++++++++++++++++++++++++-------------- src/mixedmodel.jl | 8 ++++-- src/remat.jl | 5 ++-- 6 files changed, 61 insertions(+), 27 deletions(-) diff --git a/issues/638/Manifest.toml b/issues/638/Manifest.toml index a6110c715..5b18a3e16 100644 --- a/issues/638/Manifest.toml +++ b/issues/638/Manifest.toml @@ -760,7 +760,7 @@ version = "1.0.2" [[MixedModels]] deps = ["Arrow", "DataAPI", "Distributions", "GLM", "JSON3", "LazyArtifacts", "LinearAlgebra", "Markdown", "NLopt", "PooledArrays", "ProgressMeter", "Random", "SparseArrays", "StaticArrays", "Statistics", "StatsAPI", "StatsBase", "StatsFuns", "StatsModels", "StructTypes", "Tables"] -git-tree-sha1 = "31538466936a03a860d192d8db7bd1edb2179a91" +path = "../.." uuid = "ff71e718-51f3-5ec2-a782-8ffcbfa3c316" version = "4.8.0" diff --git a/issues/638/main.jl b/issues/638/main.jl index 61ea6c682..adeb57e59 100644 --- a/issues/638/main.jl +++ b/issues/638/main.jl @@ -191,3 +191,7 @@ m_form_split = let f = @formula(y ~ v1 + v2 + v3 + v4 + v5 + ((0 + v5) | pl5e)) fit(MixedModel, f, data; wts, contrasts) end + +# test new kwarg + +fit(MixedModel, model_form, data; wts, contrasts, amalgamate=false) diff --git a/src/linalg/rankUpdate.jl b/src/linalg/rankUpdate.jl index e12662323..9fc294185 100644 --- a/src/linalg/rankUpdate.jl +++ b/src/linalg/rankUpdate.jl @@ -16,6 +16,15 @@ function rankUpdate!(C::AbstractMatrix, a::AbstractArray, α, β) ) end +function MixedModels.rankUpdate!(C::Hermitian{T, Diagonal{T, Vector{T}}}, A::Diagonal{T, Vector{T}}, α, β) where {T} + Cdiag = C.data.diag + Adiag = A.diag + @inbounds for idx in eachindex(Cdiag, Adiag) + Cdiag[idx] = β * Cdiag[idx] + α * abs2(Adiag[idx]) + end + return C +end + function rankUpdate!(C::HermOrSym{T,S}, a::StridedVector{T}, α, β) where {T,S} Cd = C.data isone(β) || rmul!(C.uplo == 'L' ? LowerTriangular(Cd) : UpperTriangular(Cd), β) diff --git a/src/linearmixedmodel.jl b/src/linearmixedmodel.jl index 3da4d6782..8e2336e58 100644 --- a/src/linearmixedmodel.jl +++ b/src/linearmixedmodel.jl @@ -41,18 +41,15 @@ struct LinearMixedModel{T<:AbstractFloat} <: MixedModel{T} optsum::OptSummary{T} end -function LinearMixedModel( - f::FormulaTerm, tbl; contrasts=Dict{Symbol,Any}(), wts=[], σ=nothing -) - return LinearMixedModel(f::FormulaTerm, Tables.columntable(tbl); contrasts, wts, σ) -end +LinearMixedModel(f::FormulaTerm, tbl; kwargs...) = + LinearMixedModel(f::FormulaTerm, Tables.columntable(tbl); kwargs...) + const _MISSING_RE_ERROR = ArgumentError( "Formula contains no random effects; this isn't a mixed model. Perhaps you want to use GLM.jl?", ) function LinearMixedModel( - f::FormulaTerm, tbl::Tables.ColumnTable; contrasts=Dict{Symbol,Any}(), wts=[], σ=nothing -) + f::FormulaTerm, tbl::Tables.ColumnTable; contrasts=Dict{Symbol,Any}(), wts=[], σ=nothing, kwargs...) # TODO: perform missing_omit() after apply_schema() when improved # missing support is in a StatsModels release tbl, _ = StatsModels.missing_omit(tbl, f) @@ -74,7 +71,7 @@ function LinearMixedModel( y, Xs = modelcols(form, tbl) - return LinearMixedModel(y, Xs, form, wts, σ) + return LinearMixedModel(y, Xs, form, wts, σ; kwargs...) end """ @@ -95,7 +92,8 @@ function LinearMixedModel( Xs::Tuple, # can't be more specific here without stressing the compiler form::FormulaTerm, wts=[], - σ=nothing, + σ=nothing; + kwargs... ) T = promote_type(Float64, float(eltype(y))) # ensure eltype of model matrices is at least Float64 @@ -128,11 +126,11 @@ function LinearMixedModel( end end isempty(reterms) && throw(_MISSING_RE_ERROR) - return LinearMixedModel(convert(Array{T}, y), only(feterms), reterms, form, wts, σ) + return LinearMixedModel(convert(Array{T}, y), only(feterms), reterms, form, wts, σ; kwargs...) end """ - LinearMixedModel(y, feterm, reterms, form, wts=[], σ=nothing) + LinearMixedModel(y, feterm, reterms, form, wts=[], σ=nothing; amalgamate=true) Private constructor for a `LinearMixedModel` given already assembled fixed and random effects. @@ -151,11 +149,13 @@ function LinearMixedModel( reterms::AbstractVector{<:AbstractReMat{T}}, form::FormulaTerm, wts=[], - σ=nothing, + σ=nothing; + amalgamate=false ) where {T} # detect and combine RE terms with the same grouping var - if length(reterms) > 1 - reterms = amalgamate(reterms) + if amalgamate && length(reterms) > 1 + # have to make sure we grab the function and not the local variable + reterms = MixedModels.amalgamate(reterms) end sort!(reterms; by=nranef, rev=true) @@ -193,6 +193,7 @@ function StatsAPI.fit( REML::Bool=false, σ=nothing, thin=typemax(Int), + amalgamate=true, ) return fit( LinearMixedModel, @@ -204,6 +205,7 @@ function StatsAPI.fit( REML, σ, thin, + amalgamate, ) end @@ -217,8 +219,9 @@ function StatsAPI.fit( REML=false, σ=nothing, thin=typemax(Int), + amalgamate=true, ) - return fit!(LinearMixedModel(f, tbl; contrasts, wts, σ); progress, REML, thin) + return fit!(LinearMixedModel(f, tbl; contrasts, wts, σ, amalgamate); progress, REML, thin) end function _offseterr() @@ -240,11 +243,12 @@ function StatsAPI.fit( offset=[], σ=nothing, thin=typemax(Int), + amalgamate=true, ) return if !isempty(offset) _offseterr() else - fit(LinearMixedModel, f, tbl; wts, contrasts, progress, REML, σ, thin) + fit(LinearMixedModel, f, tbl; wts, contrasts, progress, REML, σ, thin, amalgamate) end end @@ -263,6 +267,7 @@ function StatsAPI.fit( thin=typemax(Int), fast=nothing, nAGQ=nothing, + amalgamate=true, ) return if !isempty(offset) _offseterr() @@ -270,7 +275,7 @@ function StatsAPI.fit( if !isnothing(fast) || !isnothing(nAGQ) @warn "fast and nAGQ arguments are ignored when fitting a LinearMixedModel" end - fit(LinearMixedModel, f, tbl; wts, contrasts, progress, REML, σ, thin) + fit(LinearMixedModel, f, tbl; wts, contrasts, progress, REML, σ, thin, amalgamate) end end @@ -356,7 +361,7 @@ end Return the conditional covariance matrices of the random effects as a `NamedTuple` of columntables """ function condVartables(m::MixedModel{T}) where {T} - return NamedTuple{fnames(m)}((map(_cvtbl, condVar(m), m.reterms)...,)) + return NamedTuple{_unique_fnames(m)}((map(_cvtbl, condVar(m), m.reterms)...,)) end function _pushALblock!(A, L, blk) @@ -589,6 +594,19 @@ Return the names of the grouping factors for the random-effects terms. """ fnames(m::MixedModel) = (fname.(m.reterms)...,) +function _unique_fnames(m::MixedModel) + fn = fnames(m) + ufn = unique(fn) + length(fn) == length(ufn) && return fn + fn = collect(fn) + d = Dict(ufn .=> 0) + for i in eachindex(fn) + (d[fn[i]] += 1) == 1 && continue + fn[i] = Symbol(string(fn[i], ".", d[fn[i]])) + end + return Tuple(fn) +end + """ getθ(m::LinearMixedModel) @@ -642,7 +660,7 @@ function Base.getproperty(m::LinearMixedModel{T}, s::Symbol) where {T} elseif s == :vcov vcov(m; corr=false) elseif s == :PCA - NamedTuple{fnames(m)}(PCA.(m.reterms)) + PCA(m) elseif s == :pvalues ccdf.(Chisq(1), abs2.(coef(m) ./ stderror(m))) elseif s == :stderror @@ -907,7 +925,7 @@ always 1.0 representing the complete proportion of the variance. """ function rePCA(m::LinearMixedModel; corr::Bool=true) pca = PCA.(m.reterms, corr=corr) - return NamedTuple{fnames(m)}(getproperty.(pca, :cumvar)) + return NamedTuple{_unique_fnames(m)}(getproperty.(pca, :cumvar)) end """ @@ -918,7 +936,7 @@ covariance matrices or correlation matrices when `corr` is `true`. """ function PCA(m::LinearMixedModel; corr::Bool=true) - return NamedTuple{fnames(m)}(PCA.(m.reterms, corr=corr)) + return NamedTuple{_unique_fnames(m)}(PCA.(m.reterms, corr=corr)) end """ diff --git a/src/mixedmodel.jl b/src/mixedmodel.jl index 45812ad3f..f4a13177e 100644 --- a/src/mixedmodel.jl +++ b/src/mixedmodel.jl @@ -103,7 +103,7 @@ end Return the conditional means of the random effects as a `NamedTuple` of columntables """ function raneftables(m::MixedModel{T}; uscale=false) where {T} - return NamedTuple{fnames(m)}((map(retbl, ranef(m; uscale=uscale), m.reterms)...,)) + return NamedTuple{_unique_fnames(m)}((map(retbl, ranef(m; uscale=uscale), m.reterms)...,)) end StatsAPI.residuals(m::MixedModel) = response(m) .- fitted(m) @@ -126,12 +126,14 @@ end function σs(m::MixedModel) σ = dispersion(m) - return NamedTuple{fnames(m)}(((σs(t, σ) for t in m.reterms)...,)) + fn = _unique_fnames(m) + return NamedTuple{fn}(((σs(t, σ) for t in m.reterms)...,)) end function σρs(m::MixedModel) σ = dispersion(m) - return NamedTuple{fnames(m)}(((σρs(t, σ) for t in m.reterms)...,)) + fn = _unique_fnames(m) + return NamedTuple{fn}(((σρs(t, σ) for t in m.reterms)...,)) end """ diff --git a/src/remat.jl b/src/remat.jl index d3added38..cb0d44617 100644 --- a/src/remat.jl +++ b/src/remat.jl @@ -509,14 +509,15 @@ function reweight!(A::ReMat, sqrtwts::Vector) return A end -rmulΛ!(A::Matrix{T}, B::ReMat{T,1}) where {T} = rmul!(A, only(B.λ)) +# why nested where? force specialization to eliminate dynamic dispatch +rmulΛ!(A::M, B::ReMat{T,1}) where {M <:Union{Diagonal{T}, Matrix{T}}} where {T} = rmul!(A, only(B.λ)) function rmulΛ!(A::SparseMatrixCSC{T}, B::ReMat{T,1}) where {T} rmul!(nonzeros(A), only(B.λ)) return A end -function rmulΛ!(A::Matrix{T}, B::ReMat{T,S}) where {T,S} +function rmulΛ!(A::M, B::ReMat{T,S}) where {M <:Union{Diagonal{T}, Matrix{T}}} where {T,S} m, n = size(A) q, r = divrem(n, S) iszero(r) || throw(DimensionMismatch("size(A, 2) is not a multiple of block size")) From ae060dcf450ed9186169be959c6650e6d69c1dc1 Mon Sep 17 00:00:00 2001 From: Phillip Alday Date: Tue, 4 Apr 2023 20:55:08 -0500 Subject: [PATCH 02/10] allow the user to disable amalgamation --- NEWS.md | 1 + Project.toml | 2 +- src/generalizedlinearmixedmodel.jl | 13 +++++++------ src/linearmixedmodel.jl | 21 +++++++++++++-------- 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/NEWS.md b/NEWS.md index ff90225f5..069956206 100644 --- a/NEWS.md +++ b/NEWS.md @@ -2,6 +2,7 @@ MixedModels v4.9.0 Release Notes ============================== * Revise code in benchmarks to work with recent Julia and PkgBenchmark.jl [#667] * Julia minimum compat version raised to 1.8 because of BSplineKit [#665] +* New kwarg `amalgamate` can be used to disable amalgation of random0effects terms sharing a single grouping variable. Generally, `amalgamate=false` will result in a slower fit, but may improve convergence in some pathological cases. MixedModels v4.8.2 Release Notes ============================== diff --git a/Project.toml b/Project.toml index 60d4a4482..973dccf81 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "MixedModels" uuid = "ff71e718-51f3-5ec2-a782-8ffcbfa3c316" author = ["Phillip Alday ", "Douglas Bates ", "Jose Bayoan Santiago Calderon "] -version = "4.8.2" +version = "4.9.0" [deps] Arrow = "69666777-d1a9-59fb-9406-91d4454c9d45" diff --git a/src/generalizedlinearmixedmodel.jl b/src/generalizedlinearmixedmodel.jl index d1612b2ad..2a89299d0 100644 --- a/src/generalizedlinearmixedmodel.jl +++ b/src/generalizedlinearmixedmodel.jl @@ -181,10 +181,11 @@ function StatsAPI.fit( wts=[], contrasts=Dict{Symbol,Any}(), offset=[], + amalgamate=true, kwargs..., ) return fit!( - GeneralizedLinearMixedModel(f, tbl, d, l; wts, offset, contrasts); kwargs... + GeneralizedLinearMixedModel(f, tbl, d, l; wts, offset, contrasts, amalgamate); kwargs... ) end @@ -334,9 +335,10 @@ function GeneralizedLinearMixedModel( wts=[], offset=[], contrasts=Dict{Symbol,Any}(), + amalgamate=true, ) return GeneralizedLinearMixedModel( - f, Tables.columntable(tbl), d, l; wts=wts, offset=offset, contrasts=contrasts + f, Tables.columntable(tbl), d, l; wts, offset, contrasts, amalgamate, ) end @@ -345,9 +347,7 @@ function GeneralizedLinearMixedModel( tbl::Tables.ColumnTable, d::Normal, l::IdentityLink; - wts=[], - offset=[], - contrasts=Dict{Symbol,Any}(), + kwargs... ) return throw( ArgumentError("use LinearMixedModel for Normal distribution with IdentityLink") @@ -362,6 +362,7 @@ function GeneralizedLinearMixedModel( wts=[], offset=[], contrasts=Dict{Symbol,Any}(), + amalgamate=true, ) if isa(d, Binomial) && isempty(wts) d = Bernoulli() @@ -376,7 +377,7 @@ function GeneralizedLinearMixedModel( the authors gain a better understanding of those cases.""" end - LMM = LinearMixedModel(f, tbl; contrasts=contrasts, wts=wts) + LMM = LinearMixedModel(f, tbl; contrasts, wts, amalgamate) y = copy(LMM.y) constresponse = all(==(first(y)), y) # the sqrtwts field must be the correct length and type but we don't know those diff --git a/src/linearmixedmodel.jl b/src/linearmixedmodel.jl index e69998f65..a9f8dade0 100644 --- a/src/linearmixedmodel.jl +++ b/src/linearmixedmodel.jl @@ -42,16 +42,17 @@ struct LinearMixedModel{T<:AbstractFloat} <: MixedModel{T} end function LinearMixedModel( - f::FormulaTerm, tbl; contrasts=Dict{Symbol,Any}(), wts=[], σ=nothing + f::FormulaTerm, tbl; contrasts=Dict{Symbol,Any}(), wts=[], σ=nothing, amalgamate=true, ) - return LinearMixedModel(f::FormulaTerm, Tables.columntable(tbl); contrasts, wts, σ) + return LinearMixedModel(f::FormulaTerm, Tables.columntable(tbl); contrasts, wts, σ, amalgamate) end + const _MISSING_RE_ERROR = ArgumentError( "Formula contains no random effects; this isn't a mixed model. Perhaps you want to use GLM.jl?", ) function LinearMixedModel( - f::FormulaTerm, tbl::Tables.ColumnTable; contrasts=Dict{Symbol,Any}(), wts=[], σ=nothing + f::FormulaTerm, tbl::Tables.ColumnTable; contrasts=Dict{Symbol,Any}(), wts=[], σ=nothing, amalgamate=true, ) # TODO: perform missing_omit() after apply_schema() when improved # missing support is in a StatsModels release @@ -74,11 +75,11 @@ function LinearMixedModel( y, Xs = modelcols(form, tbl) - return LinearMixedModel(y, Xs, form, wts, σ) + return LinearMixedModel(y, Xs, form, wts, σ, amalgamate) end """ - LinearMixedModel(y, Xs, form, wts=[], σ=nothing) + LinearMixedModel(y, Xs, form, wts=[], σ=nothing, amalgamate=true) Private constructor for a LinearMixedModel. @@ -96,6 +97,7 @@ function LinearMixedModel( form::FormulaTerm, wts=[], σ=nothing, + amalgamate=true, ) T = promote_type(Float64, float(eltype(y))) # ensure eltype of model matrices is at least Float64 @@ -128,7 +130,7 @@ function LinearMixedModel( end end isempty(reterms) && throw(_MISSING_RE_ERROR) - return LinearMixedModel(convert(Array{T}, y), only(feterms), reterms, form, wts, σ) + return LinearMixedModel(convert(Array{T}, y), only(feterms), reterms, form, wts, σ, amalgamate) end """ @@ -152,10 +154,13 @@ function LinearMixedModel( form::FormulaTerm, wts=[], σ=nothing, + amalgamate=true, ) where {T} # detect and combine RE terms with the same grouping var - if length(reterms) > 1 - reterms = amalgamate(reterms) + if length(reterms) > 1 && amalgamate + # okay, this looks weird, but it allows us to have the kwarg with the same name + # as the internal function + reterms = MixedModels.amalgamate(reterms) end sort!(reterms; by=nranef, rev=true) From 688a23fb6e840e5a95278585bf5467e87e90f1fe Mon Sep 17 00:00:00 2001 From: Phillip Alday Date: Tue, 4 Apr 2023 20:59:11 -0500 Subject: [PATCH 03/10] issue xref --- NEWS.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 069956206..ec96b4a32 100644 --- a/NEWS.md +++ b/NEWS.md @@ -2,7 +2,7 @@ MixedModels v4.9.0 Release Notes ============================== * Revise code in benchmarks to work with recent Julia and PkgBenchmark.jl [#667] * Julia minimum compat version raised to 1.8 because of BSplineKit [#665] -* New kwarg `amalgamate` can be used to disable amalgation of random0effects terms sharing a single grouping variable. Generally, `amalgamate=false` will result in a slower fit, but may improve convergence in some pathological cases. +* New kwarg `amalgamate` can be used to disable amalgation of random0effects terms sharing a single grouping variable. Generally, `amalgamate=false` will result in a slower fit, but may improve convergence in some pathological cases. [#673] MixedModels v4.8.2 Release Notes ============================== @@ -399,3 +399,4 @@ Package dependencies [#663]: https://github.com/JuliaStats/MixedModels.jl/issues/663 [#665]: https://github.com/JuliaStats/MixedModels.jl/issues/665 [#667]: https://github.com/JuliaStats/MixedModels.jl/issues/667 +[#673]: https://github.com/JuliaStats/MixedModels.jl/issues/673 From 0a73a9b5c5d5a45760164269dd6d7b4e774550b4 Mon Sep 17 00:00:00 2001 From: Phillip Alday Date: Tue, 4 Apr 2023 21:34:45 -0500 Subject: [PATCH 04/10] punt kwarg checking to the methods that can deal with them --- src/linearmixedmodel.jl | 35 ++++++++--------------------------- 1 file changed, 8 insertions(+), 27 deletions(-) diff --git a/src/linearmixedmodel.jl b/src/linearmixedmodel.jl index a9f8dade0..0c5f81ade 100644 --- a/src/linearmixedmodel.jl +++ b/src/linearmixedmodel.jl @@ -192,23 +192,13 @@ function StatsAPI.fit( ::Type{LinearMixedModel}, f::FormulaTerm, tbl; - wts=[], - contrasts=Dict{Symbol,Any}(), - progress::Bool=true, - REML::Bool=false, - σ=nothing, - thin=typemax(Int), + kwargs... ) return fit( LinearMixedModel, f, Tables.columntable(tbl); - wts, - contrasts, - progress, - REML, - σ, - thin, + kwargs... ) end @@ -222,8 +212,9 @@ function StatsAPI.fit( REML=false, σ=nothing, thin=typemax(Int), + amalgamate=true, ) - return fit!(LinearMixedModel(f, tbl; contrasts, wts, σ); progress, REML, thin) + return fit!(LinearMixedModel(f, tbl; contrasts, wts, σ, amalgamate); progress, REML, thin) end function _offseterr() @@ -238,18 +229,13 @@ function StatsAPI.fit( ::Type{MixedModel}, f::FormulaTerm, tbl; - wts=[], - contrasts=Dict{Symbol,Any}(), - progress::Bool=true, - REML::Bool=false, offset=[], - σ=nothing, - thin=typemax(Int), + kwargs..., ) return if !isempty(offset) _offseterr() else - fit(LinearMixedModel, f, tbl; wts, contrasts, progress, REML, σ, thin) + fit(LinearMixedModel, f, tbl; kwargs...) end end @@ -259,15 +245,10 @@ function StatsAPI.fit( tbl, d::Normal, l::IdentityLink; - wts=[], - contrasts=Dict{Symbol,Any}(), - progress::Bool=true, - REML::Bool=false, offset=[], - σ=nothing, - thin=typemax(Int), fast=nothing, nAGQ=nothing, + kwargs..., ) return if !isempty(offset) _offseterr() @@ -275,7 +256,7 @@ function StatsAPI.fit( if !isnothing(fast) || !isnothing(nAGQ) @warn "fast and nAGQ arguments are ignored when fitting a LinearMixedModel" end - fit(LinearMixedModel, f, tbl; wts, contrasts, progress, REML, σ, thin) + fit(LinearMixedModel, f, tbl; kwargs...) end end From b0fd78966a5c546a8cb48d5f9ece024d4deffdbe Mon Sep 17 00:00:00 2001 From: Phillip Alday Date: Tue, 4 Apr 2023 21:54:41 -0500 Subject: [PATCH 05/10] update example --- issues/638/Manifest.toml | 532 ++++++++++++++++++++------------------- issues/638/main.jl | 1 + 2 files changed, 268 insertions(+), 265 deletions(-) diff --git a/issues/638/Manifest.toml b/issues/638/Manifest.toml index 5b18a3e16..9f096a1cb 100644 --- a/issues/638/Manifest.toml +++ b/issues/638/Manifest.toml @@ -1,1426 +1,1428 @@ # This file is machine-generated - editing it directly is not advised -[[AbstractFFTs]] +manifest_format = "2.0" + +[[deps.AbstractFFTs]] deps = ["ChainRulesCore", "LinearAlgebra"] git-tree-sha1 = "69f7020bd72f069c219b5e8c236c1fa90d2cb409" uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" version = "1.2.1" -[[AbstractTrees]] +[[deps.AbstractTrees]] git-tree-sha1 = "5c0b629df8a5566a06f5fef5100b53ea56e465a0" uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" version = "0.4.2" -[[Adapt]] +[[deps.Adapt]] deps = ["LinearAlgebra"] git-tree-sha1 = "195c5505521008abea5aee4f96930717958eac6f" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" version = "3.4.0" -[[Animations]] +[[deps.Animations]] deps = ["Colors"] git-tree-sha1 = "e81c509d2c8e49592413bfb0bb3b08150056c79d" uuid = "27a7e980-b3e6-11e9-2bcd-0b925532e340" version = "0.4.1" -[[ArgTools]] +[[deps.ArgTools]] uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" version = "1.1.1" -[[Arrow]] +[[deps.Arrow]] deps = ["ArrowTypes", "BitIntegers", "CodecLz4", "CodecZstd", "DataAPI", "Dates", "Mmap", "PooledArrays", "SentinelArrays", "Tables", "TimeZones", "UUIDs"] git-tree-sha1 = "4e7aa2021204bd9456ad3e87372237e84ee2c3c1" uuid = "69666777-d1a9-59fb-9406-91d4454c9d45" version = "2.3.0" -[[ArrowTypes]] +[[deps.ArrowTypes]] deps = ["UUIDs"] git-tree-sha1 = "a0633b6d6efabf3f76dacd6eb1b3ec6c42ab0552" uuid = "31f734f8-188a-4ce0-8406-c8a06bd891cd" version = "1.2.1" -[[Artifacts]] +[[deps.Artifacts]] uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" -[[Automa]] +[[deps.Automa]] deps = ["Printf", "ScanByte", "TranscodingStreams"] git-tree-sha1 = "d50976f217489ce799e366d9561d56a98a30d7fe" uuid = "67c07d97-cdcb-5c2c-af73-a7f9c32a568b" version = "0.8.2" -[[AxisAlgorithms]] +[[deps.AxisAlgorithms]] deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] git-tree-sha1 = "66771c8d21c8ff5e3a93379480a2307ac36863f7" uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950" version = "1.0.1" -[[Base64]] +[[deps.Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" -[[BenchmarkTools]] +[[deps.BenchmarkTools]] deps = ["JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"] git-tree-sha1 = "4c10eee4af024676200bc7752e536f858c6b8f93" uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" version = "1.3.1" -[[BitIntegers]] +[[deps.BitIntegers]] deps = ["Random"] git-tree-sha1 = "5a814467bda636f3dde5c4ef83c30dd0a19928e0" uuid = "c3b6d118-76ef-56ca-8cc7-ebb389d030a1" version = "0.2.6" -[[Bzip2_jll]] +[[deps.Bzip2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "19a35467a82e236ff51bc17a3a44b69ef35185a2" uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" version = "1.0.8+0" -[[CEnum]] +[[deps.CEnum]] git-tree-sha1 = "eb4cb44a499229b3b8426dcfb5dd85333951ff90" uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" version = "0.4.2" -[[CSV]] +[[deps.CSV]] deps = ["CodecZlib", "Dates", "FilePathsBase", "InlineStrings", "Mmap", "Parsers", "PooledArrays", "SentinelArrays", "Tables", "Unicode", "WeakRefStrings"] git-tree-sha1 = "873fb188a4b9d76549b81465b1f75c82aaf59238" uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" version = "0.10.4" -[[Cairo]] +[[deps.Cairo]] deps = ["Cairo_jll", "Colors", "Glib_jll", "Graphics", "Libdl", "Pango_jll"] git-tree-sha1 = "d0b3f8b4ad16cb0a2988c6788646a5e6a17b6b1b" uuid = "159f3aea-2a34-519c-b102-8c37f9878175" version = "1.0.5" -[[CairoMakie]] +[[deps.CairoMakie]] deps = ["Base64", "Cairo", "Colors", "FFTW", "FileIO", "FreeType", "GeometryBasics", "LinearAlgebra", "Makie", "SHA", "SnoopPrecompile"] git-tree-sha1 = "f53b586e9489163ece213144a5a6417742f0388e" uuid = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" version = "0.9.0" -[[Cairo_jll]] -deps = ["Artifacts", "Bzip2_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] +[[deps.Cairo_jll]] +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" version = "1.16.1+1" -[[Calculus]] +[[deps.Calculus]] deps = ["LinearAlgebra"] git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" version = "0.5.1" -[[ChainRulesCore]] +[[deps.ChainRulesCore]] deps = ["Compat", "LinearAlgebra", "SparseArrays"] git-tree-sha1 = "e7ff6cadf743c098e08fca25c91103ee4303c9bb" uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" version = "1.15.6" -[[ChangesOfVariables]] +[[deps.ChangesOfVariables]] deps = ["ChainRulesCore", "LinearAlgebra", "Test"] git-tree-sha1 = "38f7a08f19d8810338d4f5085211c7dfa5d5bdd8" uuid = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" version = "0.1.4" -[[CodecBzip2]] +[[deps.CodecBzip2]] deps = ["Bzip2_jll", "Libdl", "TranscodingStreams"] git-tree-sha1 = "2e62a725210ce3c3c2e1a3080190e7ca491f18d7" uuid = "523fee87-0ab8-5b00-afb7-3ecf72e48cfd" version = "0.7.2" -[[CodecLz4]] +[[deps.CodecLz4]] deps = ["Lz4_jll", "TranscodingStreams"] git-tree-sha1 = "59fe0cb37784288d6b9f1baebddbf75457395d40" uuid = "5ba52731-8f18-5e0d-9241-30f10d1ec561" version = "0.4.0" -[[CodecZlib]] +[[deps.CodecZlib]] deps = ["TranscodingStreams", "Zlib_jll"] git-tree-sha1 = "ded953804d019afa9a3f98981d99b33e3db7b6da" uuid = "944b1d66-785c-5afd-91f1-9de20f533193" version = "0.7.0" -[[CodecZstd]] +[[deps.CodecZstd]] deps = ["CEnum", "TranscodingStreams", "Zstd_jll"] git-tree-sha1 = "849470b337d0fa8449c21061de922386f32949d9" uuid = "6b39b394-51ab-5f42-8807-6242bab2b4c2" version = "0.7.2" -[[ColorBrewer]] +[[deps.ColorBrewer]] deps = ["Colors", "JSON", "Test"] git-tree-sha1 = "61c5334f33d91e570e1d0c3eb5465835242582c4" uuid = "a2cac450-b92f-5266-8821-25eda20663c8" version = "0.4.0" -[[ColorSchemes]] +[[deps.ColorSchemes]] deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "Random"] git-tree-sha1 = "1fd869cc3875b57347f7027521f561cf46d1fcd8" uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" version = "3.19.0" -[[ColorTypes]] +[[deps.ColorTypes]] deps = ["FixedPointNumbers", "Random"] git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" version = "0.11.4" -[[ColorVectorSpace]] +[[deps.ColorVectorSpace]] deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "SpecialFunctions", "Statistics", "TensorCore"] git-tree-sha1 = "d08c20eef1f2cbc6e60fd3612ac4340b89fea322" uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" version = "0.9.9" -[[Colors]] +[[deps.Colors]] deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] git-tree-sha1 = "417b0ed7b8b838aa6ca0a87aadf1bb9eb111ce40" uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" version = "0.12.8" -[[CommonSubexpressions]] +[[deps.CommonSubexpressions]] deps = ["MacroTools", "Test"] git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" version = "0.3.0" -[[Compat]] +[[deps.Compat]] deps = ["Dates", "LinearAlgebra", "UUIDs"] git-tree-sha1 = "5856d3031cdb1f3b2b6340dfdc66b6d9a149a374" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" version = "4.2.0" -[[CompilerSupportLibraries_jll]] +[[deps.CompilerSupportLibraries_jll]] deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -version = "0.5.2+0" +version = "1.0.1+0" -[[Contour]] +[[deps.Contour]] git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" version = "0.6.2" -[[Crayons]] +[[deps.Crayons]] git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15" uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" version = "4.1.1" -[[DataAPI]] +[[deps.DataAPI]] git-tree-sha1 = "46d2680e618f8abd007bce0c3026cb0c4a8f2032" uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" version = "1.12.0" -[[DataFrames]] +[[deps.DataFrames]] deps = ["Compat", "DataAPI", "Future", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrettyTables", "Printf", "REPL", "Random", "Reexport", "SnoopPrecompile", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] git-tree-sha1 = "1df8f72c05cc83c1e6907f393312d3b009bcc3d4" uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" version = "1.4.0" -[[DataStructures]] +[[deps.DataStructures]] deps = ["Compat", "InteractiveUtils", "OrderedCollections"] git-tree-sha1 = "d1fff3a548102f48987a52a2e0d114fa97d730f0" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" version = "0.18.13" -[[DataValueInterfaces]] +[[deps.DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" version = "1.0.0" -[[Dates]] +[[deps.Dates]] deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" -[[DensityInterface]] +[[deps.DensityInterface]] deps = ["InverseFunctions", "Test"] git-tree-sha1 = "80c3e8639e3353e5d2912fb3a1916b8455e2494b" uuid = "b429d917-457f-4dbc-8f4c-0cc954292b1d" version = "0.4.0" -[[DiffResults]] +[[deps.DiffResults]] deps = ["StaticArraysCore"] git-tree-sha1 = "782dd5f4561f5d267313f23853baaaa4c52ea621" uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" version = "1.1.0" -[[DiffRules]] +[[deps.DiffRules]] deps = ["IrrationalConstants", "LogExpFunctions", "NaNMath", "Random", "SpecialFunctions"] git-tree-sha1 = "992a23afdb109d0d2f8802a30cf5ae4b1fe7ea68" uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" version = "1.11.1" -[[Distributed]] +[[deps.Distributed]] deps = ["Random", "Serialization", "Sockets"] uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" -[[Distributions]] +[[deps.Distributions]] deps = ["ChainRulesCore", "DensityInterface", "FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SparseArrays", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns", "Test"] git-tree-sha1 = "0d7d213133d948c56e8c2d9f4eab0293491d8e4a" uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" version = "0.25.75" -[[DocStringExtensions]] +[[deps.DocStringExtensions]] deps = ["LibGit2"] git-tree-sha1 = "5158c2b41018c5f7eb1470d558127ac274eca0c9" uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" version = "0.9.1" -[[Downloads]] +[[deps.Downloads]] deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" version = "1.6.0" -[[DualNumbers]] +[[deps.DualNumbers]] deps = ["Calculus", "NaNMath", "SpecialFunctions"] git-tree-sha1 = "5837a837389fccf076445fce071c8ddaea35a566" uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74" version = "0.6.8" -[[EarCut_jll]] +[[deps.EarCut_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "e3290f2d49e661fbd94046d7e3726ffcb2d41053" uuid = "5ae413db-bbd1-5e63-b57d-d24a61df00f5" version = "2.2.4+0" -[[Expat_jll]] +[[deps.Expat_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "bad72f730e9e91c08d9427d5e8db95478a3c323d" uuid = "2e619515-83b5-522b-bb60-26c02a35a201" version = "2.4.8+0" -[[ExprTools]] +[[deps.ExprTools]] git-tree-sha1 = "56559bbef6ca5ea0c0818fa5c90320398a6fbf8d" uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" version = "0.1.8" -[[Extents]] +[[deps.Extents]] git-tree-sha1 = "5e1e4c53fa39afe63a7d356e30452249365fba99" uuid = "411431e0-e8b7-467b-b5e0-f676ba4f2910" version = "0.1.1" -[[FFMPEG]] +[[deps.FFMPEG]] deps = ["FFMPEG_jll"] git-tree-sha1 = "b57e3acbe22f8484b4b5ff66a7499717fe1a9cc8" uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" version = "0.4.1" -[[FFMPEG_jll]] +[[deps.FFMPEG_jll]] deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Pkg", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] git-tree-sha1 = "74faea50c1d007c85837327f6775bea60b5492dd" uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" version = "4.4.2+2" -[[FFTW]] +[[deps.FFTW]] deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] git-tree-sha1 = "90630efff0894f8142308e334473eba54c433549" uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" version = "1.5.0" -[[FFTW_jll]] +[[deps.FFTW_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "c6033cc3892d0ef5bb9cd29b7f2f0331ea5184ea" uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" version = "3.3.10+0" -[[FileIO]] +[[deps.FileIO]] deps = ["Pkg", "Requires", "UUIDs"] git-tree-sha1 = "7be5f99f7d15578798f338f5433b6c432ea8037b" uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" version = "1.16.0" -[[FilePathsBase]] +[[deps.FilePathsBase]] deps = ["Compat", "Dates", "Mmap", "Printf", "Test", "UUIDs"] git-tree-sha1 = "e27c4ebe80e8699540f2d6c805cc12203b614f12" uuid = "48062228-2e41-5def-b9a4-89aafe57970f" version = "0.9.20" -[[FileWatching]] +[[deps.FileWatching]] uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" -[[FillArrays]] +[[deps.FillArrays]] deps = ["LinearAlgebra", "Random", "SparseArrays", "Statistics"] git-tree-sha1 = "87519eb762f85534445f5cda35be12e32759ee14" uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" version = "0.13.4" -[[FixedPointNumbers]] +[[deps.FixedPointNumbers]] deps = ["Statistics"] git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" version = "0.8.4" -[[Fontconfig_jll]] +[[deps.Fontconfig_jll]] deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" version = "2.13.93+0" -[[Formatting]] +[[deps.Formatting]] deps = ["Printf"] git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" version = "0.4.2" -[[ForwardDiff]] +[[deps.ForwardDiff]] deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions", "StaticArrays"] git-tree-sha1 = "187198a4ed8ccd7b5d99c41b69c679269ea2b2d4" uuid = "f6369f11-7733-5829-9624-2563aa707210" version = "0.10.32" -[[FreeType]] +[[deps.FreeType]] deps = ["CEnum", "FreeType2_jll"] git-tree-sha1 = "cabd77ab6a6fdff49bfd24af2ebe76e6e018a2b4" uuid = "b38be410-82b0-50bf-ab77-7b57e271db43" version = "4.0.0" -[[FreeType2_jll]] +[[deps.FreeType2_jll]] deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] git-tree-sha1 = "87eb71354d8ec1a96d4a7636bd57a7347dde3ef9" uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" version = "2.10.4+0" -[[FreeTypeAbstraction]] +[[deps.FreeTypeAbstraction]] deps = ["ColorVectorSpace", "Colors", "FreeType", "GeometryBasics"] git-tree-sha1 = "38a92e40157100e796690421e34a11c107205c86" uuid = "663a7486-cb36-511b-a19d-713bb74d65c9" version = "0.10.0" -[[FriBidi_jll]] +[[deps.FriBidi_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" uuid = "559328eb-81f9-559d-9380-de523a88c83c" version = "1.0.10+0" -[[Future]] +[[deps.Future]] deps = ["Random"] uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" -[[GLM]] +[[deps.GLM]] deps = ["Distributions", "LinearAlgebra", "Printf", "Reexport", "SparseArrays", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns", "StatsModels"] git-tree-sha1 = "039118892476c2bf045a43b88fcb75ed566000ff" uuid = "38e38edf-8417-5370-95a0-9cbb8c7f171a" version = "1.8.0" -[[GeoInterface]] +[[deps.GeoInterface]] deps = ["Extents"] git-tree-sha1 = "fb28b5dc239d0174d7297310ef7b84a11804dfab" uuid = "cf35fbd7-0cd7-5166-be24-54bfbe79505f" version = "1.0.1" -[[GeometryBasics]] +[[deps.GeometryBasics]] deps = ["EarCut_jll", "GeoInterface", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"] git-tree-sha1 = "12a584db96f1d460421d5fb8860822971cdb8455" uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326" version = "0.4.4" -[[Gettext_jll]] +[[deps.Gettext_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" version = "0.21.0+0" -[[Glib_jll]] +[[deps.Glib_jll]] deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Pkg", "Zlib_jll"] -git-tree-sha1 = "fb83fbe02fe57f2c068013aa94bcdf6760d3a7a7" +git-tree-sha1 = "d3b3624125c1474292d0d8ed0f65554ac37ddb23" uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" -version = "2.74.0+1" +version = "2.74.0+2" -[[Graphics]] +[[deps.Graphics]] deps = ["Colors", "LinearAlgebra", "NaNMath"] git-tree-sha1 = "d61890399bc535850c4bf08e4e0d3a7ad0f21cbd" uuid = "a2bd30eb-e257-5431-a919-1863eab51364" version = "1.1.2" -[[Graphite2_jll]] +[[deps.Graphite2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" version = "1.3.14+0" -[[GridLayoutBase]] +[[deps.GridLayoutBase]] deps = ["GeometryBasics", "InteractiveUtils", "Observables"] git-tree-sha1 = "678d136003ed5bceaab05cf64519e3f956ffa4ba" uuid = "3955a311-db13-416c-9275-1d80ed98e5e9" version = "0.9.1" -[[Grisu]] +[[deps.Grisu]] git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" version = "1.0.2" -[[HarfBuzz_jll]] +[[deps.HarfBuzz_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" version = "2.8.1+1" -[[HypergeometricFunctions]] +[[deps.HypergeometricFunctions]] deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions", "Test"] git-tree-sha1 = "709d864e3ed6e3545230601f94e11ebc65994641" uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" version = "0.3.11" -[[ImageCore]] +[[deps.ImageCore]] deps = ["AbstractFFTs", "ColorVectorSpace", "Colors", "FixedPointNumbers", "Graphics", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "Reexport"] git-tree-sha1 = "acf614720ef026d38400b3817614c45882d75500" uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534" version = "0.9.4" -[[ImageIO]] +[[deps.ImageIO]] deps = ["FileIO", "IndirectArrays", "JpegTurbo", "LazyModules", "Netpbm", "OpenEXR", "PNGFiles", "QOI", "Sixel", "TiffImages", "UUIDs"] git-tree-sha1 = "342f789fd041a55166764c351da1710db97ce0e0" uuid = "82e4d734-157c-48bb-816b-45c225c6df19" version = "0.6.6" -[[Imath_jll]] +[[deps.Imath_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "87f7662e03a649cffa2e05bf19c303e168732d3e" uuid = "905a6f67-0a94-5f89-b386-d35d92009cd1" version = "3.1.2+0" -[[IndirectArrays]] +[[deps.IndirectArrays]] git-tree-sha1 = "012e604e1c7458645cb8b436f8fba789a51b257f" uuid = "9b13fd28-a010-5f03-acff-a1bbcff69959" version = "1.0.0" -[[Inflate]] +[[deps.Inflate]] git-tree-sha1 = "5cd07aab533df5170988219191dfad0519391428" uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" version = "0.1.3" -[[InlineStrings]] +[[deps.InlineStrings]] deps = ["Parsers"] git-tree-sha1 = "d0ca109edbae6b4cc00e751a29dcb15a124053d6" uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" version = "1.2.0" -[[IntelOpenMP_jll]] +[[deps.IntelOpenMP_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "d979e54b71da82f3a65b62553da4fc3d18c9004c" uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" version = "2018.0.3+2" -[[InteractiveUtils]] +[[deps.InteractiveUtils]] deps = ["Markdown"] uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" -[[Interpolations]] +[[deps.Interpolations]] deps = ["Adapt", "AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "Requires", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] git-tree-sha1 = "842dd89a6cb75e02e85fdd75c760cdc43f5d6863" uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" version = "0.14.6" -[[IntervalSets]] +[[deps.IntervalSets]] deps = ["Dates", "Random", "Statistics"] git-tree-sha1 = "3f91cd3f56ea48d4d2a75c2a65455c5fc74fa347" uuid = "8197267c-284f-5f27-9208-e0e47529a953" version = "0.7.3" -[[InverseFunctions]] +[[deps.InverseFunctions]] deps = ["Test"] git-tree-sha1 = "49510dfcb407e572524ba94aeae2fced1f3feb0f" uuid = "3587e190-3f89-42d0-90ee-14403ec27112" version = "0.1.8" -[[InvertedIndices]] +[[deps.InvertedIndices]] git-tree-sha1 = "bee5f1ef5bf65df56bdd2e40447590b272a5471f" uuid = "41ab1584-1d38-5bbf-9106-f11c6c58b48f" version = "1.1.0" -[[IrrationalConstants]] +[[deps.IrrationalConstants]] git-tree-sha1 = "7fd44fd4ff43fc60815f8e764c0f352b83c49151" uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" version = "0.1.1" -[[Isoband]] +[[deps.Isoband]] deps = ["isoband_jll"] git-tree-sha1 = "f9b6d97355599074dc867318950adaa6f9946137" uuid = "f1662d9f-8043-43de-a69a-05efc1cc6ff4" version = "0.1.1" -[[IterTools]] +[[deps.IterTools]] git-tree-sha1 = "fa6287a4469f5e048d763df38279ee729fbd44e5" uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" version = "1.4.0" -[[IteratorInterfaceExtensions]] +[[deps.IteratorInterfaceExtensions]] git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" uuid = "82899510-4779-5014-852e-03e436cf321d" version = "1.0.0" -[[JLLWrappers]] +[[deps.JLLWrappers]] deps = ["Preferences"] git-tree-sha1 = "abc9885a7ca2052a736a600f7fa66209f96506e1" uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" version = "1.4.1" -[[JSON]] +[[deps.JSON]] deps = ["Dates", "Mmap", "Parsers", "Unicode"] git-tree-sha1 = "3c837543ddb02250ef42f4738347454f95079d4e" uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" version = "0.21.3" -[[JSON3]] +[[deps.JSON3]] deps = ["Dates", "Mmap", "Parsers", "StructTypes", "UUIDs"] git-tree-sha1 = "f1572de22c866dc92aea032bc89c2b137cbddd6a" uuid = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" version = "1.10.0" -[[JpegTurbo]] +[[deps.JpegTurbo]] deps = ["CEnum", "FileIO", "ImageCore", "JpegTurbo_jll", "TOML"] git-tree-sha1 = "a77b273f1ddec645d1b7c4fd5fb98c8f90ad10a5" uuid = "b835a17e-a41a-41e7-81f0-2f016b05efe0" version = "0.1.1" -[[JpegTurbo_jll]] +[[deps.JpegTurbo_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "b53380851c6e6664204efb2e62cd24fa5c47e4ba" uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" version = "2.1.2+0" -[[KernelDensity]] +[[deps.KernelDensity]] deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] git-tree-sha1 = "9816b296736292a80b9a3200eb7fbb57aaa3917a" uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" version = "0.6.5" -[[LAME_jll]] +[[deps.LAME_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" version = "3.100.1+0" -[[LZO_jll]] +[[deps.LZO_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" version = "2.10.1+0" -[[LaTeXStrings]] +[[deps.LaTeXStrings]] git-tree-sha1 = "f2355693d6778a178ade15952b7ac47a4ff97996" uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" version = "1.3.0" -[[LazyArtifacts]] +[[deps.LazyArtifacts]] deps = ["Artifacts", "Pkg"] uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" -[[LazyModules]] +[[deps.LazyModules]] git-tree-sha1 = "a560dd966b386ac9ae60bdd3a3d3a326062d3c3e" uuid = "8cdb02fc-e678-4876-92c5-9defec4f444e" version = "0.3.1" -[[LibCURL]] +[[deps.LibCURL]] deps = ["LibCURL_jll", "MozillaCACerts_jll"] uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" version = "0.6.3" -[[LibCURL_jll]] +[[deps.LibCURL_jll]] deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" version = "7.84.0+0" -[[LibGit2]] +[[deps.LibGit2]] deps = ["Base64", "NetworkOptions", "Printf", "SHA"] uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" -[[LibSSH2_jll]] +[[deps.LibSSH2_jll]] deps = ["Artifacts", "Libdl", "MbedTLS_jll"] uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" version = "1.10.2+0" -[[Libdl]] +[[deps.Libdl]] uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" -[[Libffi_jll]] +[[deps.Libffi_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" version = "3.2.2+1" -[[Libgcrypt_jll]] +[[deps.Libgcrypt_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae" uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" version = "1.8.7+0" -[[Libgpg_error_jll]] +[[deps.Libgpg_error_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" version = "1.42.0+0" -[[Libiconv_jll]] +[[deps.Libiconv_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "42b62845d70a619f063a7da093d995ec8e15e778" +git-tree-sha1 = "c7cb1f5d892775ba13767a87c7ada0b980ea0a71" uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" -version = "1.16.1+1" +version = "1.16.1+2" -[[Libmount_jll]] +[[deps.Libmount_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" version = "2.35.0+0" -[[Libuuid_jll]] +[[deps.Libuuid_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" version = "2.36.0+0" -[[LinearAlgebra]] +[[deps.LinearAlgebra]] deps = ["Libdl", "libblastrampoline_jll"] uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" -[[LogExpFunctions]] +[[deps.LogExpFunctions]] deps = ["ChainRulesCore", "ChangesOfVariables", "DocStringExtensions", "InverseFunctions", "IrrationalConstants", "LinearAlgebra"] git-tree-sha1 = "94d9c52ca447e23eac0c0f074effbcd38830deb5" uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" version = "0.3.18" -[[Logging]] +[[deps.Logging]] uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" -[[Lz4_jll]] +[[deps.Lz4_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "5d494bc6e85c4c9b626ee0cab05daa4085486ab1" uuid = "5ced341a-0733-55b8-9ab6-a4889d929147" version = "1.9.3+0" -[[MKL_jll]] +[[deps.MKL_jll]] deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] git-tree-sha1 = "2ce8695e1e699b68702c03402672a69f54b8aca9" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" version = "2022.2.0+0" -[[MacroTools]] +[[deps.MacroTools]] deps = ["Markdown", "Random"] git-tree-sha1 = "3d3e902b31198a27340d0bf00d6ac452866021cf" uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" version = "0.5.9" -[[Makie]] +[[deps.Makie]] deps = ["Animations", "Base64", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "Contour", "Distributions", "DocStringExtensions", "FFMPEG", "FileIO", "FixedPointNumbers", "Formatting", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageIO", "InteractiveUtils", "IntervalSets", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MakieCore", "Markdown", "Match", "MathTeXEngine", "MiniQhull", "Observables", "OffsetArrays", "Packing", "PlotUtils", "PolygonOps", "Printf", "Random", "RelocatableFolders", "Serialization", "Showoff", "SignedDistanceFields", "SnoopPrecompile", "SparseArrays", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun"] git-tree-sha1 = "51e40869d076fbff25ab61d0aa3e198d80176c75" uuid = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" version = "0.18.0" -[[MakieCore]] +[[deps.MakieCore]] deps = ["Observables"] git-tree-sha1 = "b87650f61f85fc2d4fb5923a479dbf05ba65ae4d" uuid = "20f20a25-4f0e-4fdf-b5d1-57303727442b" version = "0.5.0" -[[MappedArrays]] +[[deps.MappedArrays]] git-tree-sha1 = "e8b359ef06ec72e8c030463fe02efe5527ee5142" uuid = "dbb5928d-eab1-5f90-85c2-b9b0edb7c900" version = "0.4.1" -[[Markdown]] +[[deps.Markdown]] deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" -[[Match]] +[[deps.Match]] git-tree-sha1 = "1d9bc5c1a6e7ee24effb93f175c9342f9154d97f" uuid = "7eb4fadd-790c-5f42-8a69-bfa0b872bfbf" version = "1.2.0" -[[MathOptInterface]] +[[deps.MathOptInterface]] deps = ["BenchmarkTools", "CodecBzip2", "CodecZlib", "DataStructures", "ForwardDiff", "JSON", "LinearAlgebra", "MutableArithmetics", "NaNMath", "OrderedCollections", "Printf", "SparseArrays", "SpecialFunctions", "Test", "Unicode"] git-tree-sha1 = "2284cb18c8670fd5c57ad010ce9bd4e2901692d2" uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" version = "1.8.2" -[[MathProgBase]] +[[deps.MathProgBase]] deps = ["LinearAlgebra", "SparseArrays"] git-tree-sha1 = "9abbe463a1e9fc507f12a69e7f29346c2cdc472c" uuid = "fdba3010-5040-5b88-9595-932c9decdf73" version = "0.7.8" -[[MathTeXEngine]] +[[deps.MathTeXEngine]] deps = ["AbstractTrees", "Automa", "DataStructures", "FreeTypeAbstraction", "GeometryBasics", "LaTeXStrings", "REPL", "RelocatableFolders", "Test", "UnicodeFun"] git-tree-sha1 = "7f837e1884f1ef84984c919fc7a00638cff1e6d1" uuid = "0a4f8689-d25c-4efe-a92b-7142dfc1aa53" version = "0.5.3" -[[MbedTLS_jll]] +[[deps.MbedTLS_jll]] deps = ["Artifacts", "Libdl"] uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" version = "2.28.0+0" -[[MiniQhull]] +[[deps.MiniQhull]] deps = ["QhullMiniWrapper_jll"] git-tree-sha1 = "9dc837d180ee49eeb7c8b77bb1c860452634b0d1" uuid = "978d7f02-9e05-4691-894f-ae31a51d76ca" version = "0.4.0" -[[Missings]] +[[deps.Missings]] deps = ["DataAPI"] git-tree-sha1 = "bf210ce90b6c9eed32d25dbcae1ebc565df2687f" uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" version = "1.0.2" -[[MixedModels]] -deps = ["Arrow", "DataAPI", "Distributions", "GLM", "JSON3", "LazyArtifacts", "LinearAlgebra", "Markdown", "NLopt", "PooledArrays", "ProgressMeter", "Random", "SparseArrays", "StaticArrays", "Statistics", "StatsAPI", "StatsBase", "StatsFuns", "StatsModels", "StructTypes", "Tables"] +[[deps.MixedModels]] +deps = ["Arrow", "DataAPI", "Distributions", "GLM", "JSON3", "LazyArtifacts", "LinearAlgebra", "Markdown", "NLopt", "PooledArrays", "ProgressMeter", "Random", "SnoopPrecompile", "SparseArrays", "StaticArrays", "Statistics", "StatsAPI", "StatsBase", "StatsFuns", "StatsModels", "StructTypes", "Tables"] path = "../.." uuid = "ff71e718-51f3-5ec2-a782-8ffcbfa3c316" -version = "4.8.0" +version = "4.9.0" -[[MixedModelsMakie]] +[[deps.MixedModelsMakie]] deps = ["DataFrames", "Distributions", "KernelDensity", "LinearAlgebra", "Makie", "MixedModels", "Printf", "SpecialFunctions", "StatsBase"] git-tree-sha1 = "adb722b6cc9f61731f7835b967ce683ea366b1f5" uuid = "b12ae82c-6730-437f-aff9-d2c38332a376" version = "0.3.17" -[[Mmap]] +[[deps.Mmap]] uuid = "a63ad114-7e13-5084-954f-fe012c677804" -[[Mocking]] +[[deps.Mocking]] deps = ["ExprTools"] git-tree-sha1 = "748f6e1e4de814b101911e64cc12d83a6af66782" uuid = "78c3b35d-d492-501b-9361-3d52fe80e533" version = "0.7.2" -[[MosaicViews]] +[[deps.MosaicViews]] deps = ["MappedArrays", "OffsetArrays", "PaddedViews", "StackViews"] git-tree-sha1 = "b34e3bc3ca7c94914418637cb10cc4d1d80d877d" uuid = "e94cdb99-869f-56ef-bcf0-1ae2bcbe0389" version = "0.3.3" -[[MozillaCACerts_jll]] +[[deps.MozillaCACerts_jll]] uuid = "14a3606d-f60d-562e-9121-12d972cd8159" version = "2022.2.1" -[[MutableArithmetics]] +[[deps.MutableArithmetics]] deps = ["LinearAlgebra", "SparseArrays", "Test"] git-tree-sha1 = "4e675d6e9ec02061800d6cfb695812becbd03cdf" uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" version = "1.0.4" -[[NLopt]] +[[deps.NLopt]] deps = ["MathOptInterface", "MathProgBase", "NLopt_jll"] git-tree-sha1 = "5a7e32c569200a8a03c3d55d286254b0321cd262" uuid = "76087f3c-5699-56af-9a33-bf431cd00edd" version = "0.6.5" -[[NLopt_jll]] +[[deps.NLopt_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "9b1f15a08f9d00cdb2761dcfa6f453f5d0d6f973" uuid = "079eb43e-fd8e-5478-9966-2cf3e3edb778" version = "2.7.1+0" -[[NaNMath]] +[[deps.NaNMath]] deps = ["OpenLibm_jll"] git-tree-sha1 = "a7c3d1da1189a1c2fe843a3bfa04d18d20eb3211" uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" version = "1.0.1" -[[Netpbm]] +[[deps.Netpbm]] deps = ["FileIO", "ImageCore"] git-tree-sha1 = "18efc06f6ec36a8b801b23f076e3c6ac7c3bf153" uuid = "f09324ee-3d7c-5217-9330-fc30815ba969" version = "1.0.2" -[[NetworkOptions]] +[[deps.NetworkOptions]] uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" version = "1.2.0" -[[Observables]] +[[deps.Observables]] git-tree-sha1 = "5a9ea4b9430d511980c01e9f7173739595bbd335" uuid = "510215fc-4207-5dde-b226-833fc4488ee2" version = "0.5.2" -[[OffsetArrays]] +[[deps.OffsetArrays]] deps = ["Adapt"] git-tree-sha1 = "f71d8950b724e9ff6110fc948dff5a329f901d64" uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" version = "1.12.8" -[[Ogg_jll]] +[[deps.Ogg_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" version = "1.3.5+1" -[[OpenBLAS_jll]] +[[deps.OpenBLAS_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" version = "0.3.20+0" -[[OpenEXR]] +[[deps.OpenEXR]] deps = ["Colors", "FileIO", "OpenEXR_jll"] git-tree-sha1 = "327f53360fdb54df7ecd01e96ef1983536d1e633" uuid = "52e1d378-f018-4a11-a4be-720524705ac7" version = "0.3.2" -[[OpenEXR_jll]] +[[deps.OpenEXR_jll]] deps = ["Artifacts", "Imath_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] git-tree-sha1 = "923319661e9a22712f24596ce81c54fc0366f304" uuid = "18a262bb-aa17-5467-a713-aee519bc75cb" version = "3.1.1+0" -[[OpenLibm_jll]] +[[deps.OpenLibm_jll]] deps = ["Artifacts", "Libdl"] uuid = "05823500-19ac-5b8b-9628-191a04bc5112" version = "0.8.1+0" -[[OpenSSL_jll]] +[[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "e60321e3f2616584ff98f0a4f18d98ae6f89bbb3" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" version = "1.1.17+0" -[[OpenSpecFun_jll]] +[[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" -[[Opus_jll]] +[[deps.Opus_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" uuid = "91d4177d-7536-5919-b921-800302f37372" version = "1.3.2+0" -[[OrderedCollections]] +[[deps.OrderedCollections]] git-tree-sha1 = "85f8e6578bf1f9ee0d11e7bb1b1456435479d47c" uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" version = "1.4.1" -[[PCRE2_jll]] +[[deps.PCRE2_jll]] deps = ["Artifacts", "Libdl"] uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" version = "10.40.0+0" -[[PDMats]] +[[deps.PDMats]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] git-tree-sha1 = "cf494dca75a69712a72b80bc48f59dcf3dea63ec" uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" version = "0.11.16" -[[PNGFiles]] +[[deps.PNGFiles]] deps = ["Base64", "CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"] git-tree-sha1 = "f809158b27eba0c18c269cf2a2be6ed751d3e81d" uuid = "f57f5aa1-a3ce-4bc8-8ab9-96f992907883" version = "0.3.17" -[[Packing]] +[[deps.Packing]] deps = ["GeometryBasics"] git-tree-sha1 = "1155f6f937fa2b94104162f01fa400e192e4272f" uuid = "19eb6ba3-879d-56ad-ad62-d5c202156566" version = "0.4.2" -[[PaddedViews]] +[[deps.PaddedViews]] deps = ["OffsetArrays"] git-tree-sha1 = "03a7a85b76381a3d04c7a1656039197e70eda03d" uuid = "5432bcbf-9aad-5242-b902-cca2824c8663" version = "0.5.11" -[[Pango_jll]] +[[deps.Pango_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "84a314e3926ba9ec66ac097e3635e270986b0f10" uuid = "36c8627f-9965-5494-a995-c6b170f724f3" version = "1.50.9+0" -[[Parsers]] +[[deps.Parsers]] deps = ["Dates"] git-tree-sha1 = "3d5bf43e3e8b412656404ed9466f1dcbf7c50269" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" version = "2.4.0" -[[Pixman_jll]] +[[deps.Pixman_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "b4f5d02549a10e20780a24fce72bea96b6329e29" uuid = "30392449-352a-5448-841d-b1acce4e97dc" version = "0.40.1+0" -[[Pkg]] +[[deps.Pkg]] deps = ["Artifacts", "Dates", "Downloads", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" version = "1.8.0" -[[PkgVersion]] +[[deps.PkgVersion]] deps = ["Pkg"] git-tree-sha1 = "f6cf8e7944e50901594838951729a1861e668cb8" uuid = "eebad327-c553-4316-9ea0-9fa01ccd7688" version = "0.3.2" -[[PlotUtils]] +[[deps.PlotUtils]] deps = ["ColorSchemes", "Colors", "Dates", "Printf", "Random", "Reexport", "SnoopPrecompile", "Statistics"] git-tree-sha1 = "21303256d239f6b484977314674aef4bb1fe4420" uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" version = "1.3.1" -[[PolygonOps]] +[[deps.PolygonOps]] git-tree-sha1 = "77b3d3605fc1cd0b42d95eba87dfcd2bf67d5ff6" uuid = "647866c9-e3ac-4575-94e7-e3d426903924" version = "0.1.2" -[[PooledArrays]] +[[deps.PooledArrays]] deps = ["DataAPI", "Future"] git-tree-sha1 = "a6062fe4063cdafe78f4a0a81cfffb89721b30e7" uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720" version = "1.4.2" -[[Preferences]] +[[deps.Preferences]] deps = ["TOML"] git-tree-sha1 = "47e5f437cc0e7ef2ce8406ce1e7e24d44915f88d" uuid = "21216c6a-2e73-6563-6e65-726566657250" version = "1.3.0" -[[PrettyTables]] +[[deps.PrettyTables]] deps = ["Crayons", "Formatting", "Markdown", "Reexport", "StringManipulation", "Tables"] git-tree-sha1 = "460d9e154365e058c4d886f6f7d6df5ffa1ea80e" uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" version = "2.1.2" -[[Printf]] +[[deps.Printf]] deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" -[[Profile]] +[[deps.Profile]] deps = ["Printf"] uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" -[[ProgressMeter]] +[[deps.ProgressMeter]] deps = ["Distributed", "Printf"] git-tree-sha1 = "d7a7aef8f8f2d537104f170139553b14dfe39fe9" uuid = "92933f4c-e287-5a05-a399-4b506db050ca" version = "1.7.2" -[[QOI]] +[[deps.QOI]] deps = ["ColorTypes", "FileIO", "FixedPointNumbers"] git-tree-sha1 = "18e8f4d1426e965c7b532ddd260599e1510d26ce" uuid = "4b34888f-f399-49d4-9bb3-47ed5cae4e65" version = "1.0.0" -[[QhullMiniWrapper_jll]] +[[deps.QhullMiniWrapper_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Qhull_jll"] git-tree-sha1 = "607cf73c03f8a9f83b36db0b86a3a9c14179621f" uuid = "460c41e3-6112-5d7f-b78c-b6823adb3f2d" version = "1.0.0+1" -[[Qhull_jll]] +[[deps.Qhull_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "695c3049ad94fa38b7f1e8243cdcee27ecad0867" uuid = "784f63db-0788-585a-bace-daefebcd302b" version = "8.0.1000+0" -[[QuadGK]] +[[deps.QuadGK]] deps = ["DataStructures", "LinearAlgebra"] git-tree-sha1 = "3c009334f45dfd546a16a57960a821a1a023d241" uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" version = "2.5.0" -[[REPL]] +[[deps.REPL]] deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" -[[Random]] +[[deps.Random]] deps = ["SHA", "Serialization"] uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" -[[Ratios]] +[[deps.Ratios]] deps = ["Requires"] git-tree-sha1 = "dc84268fe0e3335a62e315a3a7cf2afa7178a734" uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439" version = "0.4.3" -[[RecipesBase]] +[[deps.RecipesBase]] deps = ["SnoopPrecompile"] git-tree-sha1 = "612a4d76ad98e9722c8ba387614539155a59e30c" uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" version = "1.3.0" -[[Reexport]] +[[deps.Reexport]] git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" uuid = "189a3867-3050-52da-a836-e630ba90ab69" version = "1.2.2" -[[RelocatableFolders]] +[[deps.RelocatableFolders]] deps = ["SHA", "Scratch"] git-tree-sha1 = "90bc7a7c96410424509e4263e277e43250c05691" uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" version = "1.0.0" -[[Requires]] +[[deps.Requires]] deps = ["UUIDs"] git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" uuid = "ae029012-a4dd-5104-9daa-d747884805df" version = "1.3.0" -[[Rmath]] +[[deps.Rmath]] deps = ["Random", "Rmath_jll"] git-tree-sha1 = "bf3188feca147ce108c76ad82c2792c57abe7b1f" uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" version = "0.7.0" -[[Rmath_jll]] +[[deps.Rmath_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "68db32dff12bb6127bac73c209881191bf0efbb7" uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" version = "0.3.0+0" -[[SHA]] +[[deps.SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" version = "0.7.0" -[[SIMD]] +[[deps.SIMD]] git-tree-sha1 = "7dbc15af7ed5f751a82bf3ed37757adf76c32402" uuid = "fdea26ae-647d-5447-a871-4b548cad5224" version = "3.4.1" -[[ScanByte]] +[[deps.ScanByte]] deps = ["Libdl", "SIMD"] git-tree-sha1 = "2436b15f376005e8790e318329560dcc67188e84" uuid = "7b38b023-a4d7-4c5e-8d43-3f3097f304eb" version = "0.3.3" -[[Scratch]] +[[deps.Scratch]] deps = ["Dates"] git-tree-sha1 = "f94f779c94e58bf9ea243e77a37e16d9de9126bd" uuid = "6c6a2e73-6563-6170-7368-637461726353" version = "1.1.1" -[[SentinelArrays]] +[[deps.SentinelArrays]] deps = ["Dates", "Random"] git-tree-sha1 = "c0f56940fc967f3d5efed58ba829747af5f8b586" uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" version = "1.3.15" -[[Serialization]] +[[deps.Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" -[[SharedArrays]] +[[deps.SharedArrays]] deps = ["Distributed", "Mmap", "Random", "Serialization"] uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" -[[ShiftedArrays]] +[[deps.ShiftedArrays]] git-tree-sha1 = "503688b59397b3307443af35cd953a13e8005c16" uuid = "1277b4bf-5013-50f5-be3d-901d8477a67a" version = "2.0.0" -[[Showoff]] +[[deps.Showoff]] deps = ["Dates", "Grisu"] git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" version = "1.0.3" -[[SignedDistanceFields]] +[[deps.SignedDistanceFields]] deps = ["Random", "Statistics", "Test"] git-tree-sha1 = "d263a08ec505853a5ff1c1ebde2070419e3f28e9" uuid = "73760f76-fbc4-59ce-8f25-708e95d2df96" version = "0.4.0" -[[Sixel]] +[[deps.Sixel]] deps = ["Dates", "FileIO", "ImageCore", "IndirectArrays", "OffsetArrays", "REPL", "libsixel_jll"] git-tree-sha1 = "8fb59825be681d451c246a795117f317ecbcaa28" uuid = "45858cf5-a6b0-47a3-bbea-62219f50df47" version = "0.1.2" -[[SnoopPrecompile]] +[[deps.SnoopPrecompile]] git-tree-sha1 = "f604441450a3c0569830946e5b33b78c928e1a85" uuid = "66db9d55-30c0-4569-8b51-7e840670fc0c" version = "1.0.1" -[[Sockets]] +[[deps.Sockets]] uuid = "6462fe0b-24de-5631-8697-dd941f90decc" -[[SortingAlgorithms]] +[[deps.SortingAlgorithms]] deps = ["DataStructures"] git-tree-sha1 = "b3363d7460f7d098ca0912c69b082f75625d7508" uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" version = "1.0.1" -[[SparseArrays]] +[[deps.SparseArrays]] deps = ["LinearAlgebra", "Random"] uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" -[[SpecialFunctions]] +[[deps.SpecialFunctions]] deps = ["ChainRulesCore", "IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] git-tree-sha1 = "d75bda01f8c31ebb72df80a46c88b25d1c79c56d" uuid = "276daf66-3868-5448-9aa4-cd146d93841b" version = "2.1.7" -[[StackViews]] +[[deps.StackViews]] deps = ["OffsetArrays"] git-tree-sha1 = "46e589465204cd0c08b4bd97385e4fa79a0c770c" uuid = "cae243ae-269e-4f55-b966-ac2d0dc13c15" version = "0.1.1" -[[StaticArrays]] +[[deps.StaticArrays]] deps = ["LinearAlgebra", "Random", "StaticArraysCore", "Statistics"] git-tree-sha1 = "f86b3a049e5d05227b10e15dbb315c5b90f14988" uuid = "90137ffa-7385-5640-81b9-e52037218182" version = "1.5.9" -[[StaticArraysCore]] +[[deps.StaticArraysCore]] git-tree-sha1 = "6b7ba252635a5eff6a0b0664a41ee140a1c9e72a" uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" version = "1.4.0" -[[Statistics]] +[[deps.Statistics]] deps = ["LinearAlgebra", "SparseArrays"] uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" -[[StatsAPI]] +[[deps.StatsAPI]] deps = ["LinearAlgebra"] git-tree-sha1 = "f9af7f195fb13589dd2e2d57fdb401717d2eb1f6" uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" version = "1.5.0" -[[StatsBase]] +[[deps.StatsBase]] deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] git-tree-sha1 = "d1bf48bfcc554a3761a133fe3a9bb01488e06916" uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" version = "0.33.21" -[[StatsFuns]] +[[deps.StatsFuns]] deps = ["ChainRulesCore", "HypergeometricFunctions", "InverseFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] git-tree-sha1 = "5783b877201a82fc0014cbf381e7e6eb130473a4" uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" version = "1.0.1" -[[StatsModels]] +[[deps.StatsModels]] deps = ["DataAPI", "DataStructures", "LinearAlgebra", "Printf", "REPL", "ShiftedArrays", "SparseArrays", "StatsBase", "StatsFuns", "Tables"] git-tree-sha1 = "a5e15f27abd2692ccb61a99e0854dfb7d48017db" uuid = "3eaba693-59b7-5ba5-a881-562e759f1c8d" version = "0.6.33" -[[StringManipulation]] +[[deps.StringManipulation]] git-tree-sha1 = "46da2434b41f41ac3594ee9816ce5541c6096123" uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" version = "0.3.0" -[[StructArrays]] +[[deps.StructArrays]] deps = ["Adapt", "DataAPI", "StaticArraysCore", "Tables"] git-tree-sha1 = "8c6ac65ec9ab781af05b08ff305ddc727c25f680" uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" version = "0.6.12" -[[StructTypes]] +[[deps.StructTypes]] deps = ["Dates", "UUIDs"] git-tree-sha1 = "ca4bccb03acf9faaf4137a9abc1881ed1841aa70" uuid = "856f2bd8-1eba-4b0a-8007-ebc267875bd4" version = "1.10.0" -[[SuiteSparse]] +[[deps.SuiteSparse]] deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" -[[TOML]] +[[deps.TOML]] deps = ["Dates"] uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" version = "1.0.0" -[[TableTraits]] +[[deps.TableTraits]] deps = ["IteratorInterfaceExtensions"] git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" version = "1.0.1" -[[Tables]] +[[deps.Tables]] deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits", "Test"] git-tree-sha1 = "2d7164f7b8a066bcfa6224e67736ce0eb54aef5b" uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" version = "1.9.0" -[[Tar]] +[[deps.Tar]] deps = ["ArgTools", "SHA"] uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" version = "1.10.1" -[[TensorCore]] +[[deps.TensorCore]] deps = ["LinearAlgebra"] git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" version = "0.1.1" -[[Test]] +[[deps.Test]] deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" -[[TiffImages]] +[[deps.TiffImages]] deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "UUIDs"] git-tree-sha1 = "70e6d2da9210371c927176cb7a56d41ef1260db7" uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69" version = "0.6.1" -[[TimeZones]] +[[deps.TimeZones]] deps = ["Dates", "Downloads", "InlineStrings", "LazyArtifacts", "Mocking", "Printf", "RecipesBase", "Scratch", "Unicode"] git-tree-sha1 = "d634a3641062c040fc8a7e2a3ea17661cc159688" uuid = "f269a46b-ccf7-5d73-abea-4c690281aa53" version = "1.9.0" -[[TranscodingStreams]] +[[deps.TranscodingStreams]] deps = ["Random", "Test"] git-tree-sha1 = "8a75929dcd3c38611db2f8d08546decb514fcadf" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" version = "0.9.9" -[[TriplotBase]] +[[deps.TriplotBase]] git-tree-sha1 = "4d4ed7f294cda19382ff7de4c137d24d16adc89b" uuid = "981d1d27-644d-49a2-9326-4793e63143c3" version = "0.1.0" -[[UUIDs]] +[[deps.UUIDs]] deps = ["Random", "SHA"] uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" -[[Unicode]] +[[deps.Unicode]] uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" -[[UnicodeFun]] +[[deps.UnicodeFun]] deps = ["REPL"] git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" version = "0.4.1" -[[WeakRefStrings]] +[[deps.WeakRefStrings]] deps = ["DataAPI", "InlineStrings", "Parsers"] git-tree-sha1 = "b1be2855ed9ed8eac54e5caff2afcdb442d52c23" uuid = "ea10d353-3f73-51f8-a26c-33c1cb351aa5" version = "1.4.2" -[[WoodburyMatrices]] +[[deps.WoodburyMatrices]] deps = ["LinearAlgebra", "SparseArrays"] git-tree-sha1 = "de67fa59e33ad156a590055375a30b23c40299d3" uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" version = "0.5.5" -[[XML2_jll]] +[[deps.XML2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "Zlib_jll"] git-tree-sha1 = "58443b63fb7e465a8a7210828c91c08b92132dff" uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" version = "2.9.14+0" -[[XSLT_jll]] +[[deps.XSLT_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" uuid = "aed1982a-8fda-507f-9586-7b0439959a61" version = "1.1.34+0" -[[Xorg_libX11_jll]] +[[deps.Xorg_libX11_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] git-tree-sha1 = "5be649d550f3f4b95308bf0183b82e2582876527" uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" version = "1.6.9+4" -[[Xorg_libXau_jll]] +[[deps.Xorg_libXau_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "4e490d5c960c314f33885790ed410ff3a94ce67e" uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" version = "1.0.9+4" -[[Xorg_libXdmcp_jll]] +[[deps.Xorg_libXdmcp_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "4fe47bd2247248125c428978740e18a681372dd4" uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" version = "1.1.3+4" -[[Xorg_libXext_jll]] +[[deps.Xorg_libXext_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" version = "1.3.4+4" -[[Xorg_libXrender_jll]] +[[deps.Xorg_libXrender_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" version = "0.9.10+4" -[[Xorg_libpthread_stubs_jll]] +[[deps.Xorg_libpthread_stubs_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "6783737e45d3c59a4a4c4091f5f88cdcf0908cbb" uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" version = "0.1.0+3" -[[Xorg_libxcb_jll]] +[[deps.Xorg_libxcb_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] git-tree-sha1 = "daf17f441228e7a3833846cd048892861cff16d6" uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" version = "1.13.0+3" -[[Xorg_xtrans_jll]] +[[deps.Xorg_xtrans_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "79c31e7844f6ecf779705fbc12146eb190b7d845" uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" version = "1.4.0+3" -[[Zlib_jll]] +[[deps.Zlib_jll]] deps = ["Libdl"] uuid = "83775a58-1f1d-513f-b197-d71354ab007a" version = "1.2.12+3" -[[Zstd_jll]] +[[deps.Zstd_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "e45044cd873ded54b6a5bac0eb5c971392cf1927" uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" version = "1.5.2+0" -[[isoband_jll]] +[[deps.isoband_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "51b5eeb3f98367157a7a12a1fb0aa5328946c03c" uuid = "9a68df92-36a6-505f-a73e-abb412b6bfb4" version = "0.2.3+0" -[[libaom_jll]] +[[deps.libaom_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" version = "3.4.0+0" -[[libass_jll]] +[[deps.libass_jll]] deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47" uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" version = "0.15.1+0" -[[libblastrampoline_jll]] +[[deps.libblastrampoline_jll]] deps = ["Artifacts", "Libdl", "OpenBLAS_jll"] uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" version = "5.1.1+0" -[[libfdk_aac_jll]] +[[deps.libfdk_aac_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" version = "2.0.2+0" -[[libpng_jll]] +[[deps.libpng_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] git-tree-sha1 = "94d180a6d2b5e55e447e2d27a29ed04fe79eb30c" uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" version = "1.6.38+0" -[[libsixel_jll]] +[[deps.libsixel_jll]] deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Pkg", "libpng_jll"] git-tree-sha1 = "d4f63314c8aa1e48cd22aa0c17ed76cd1ae48c3c" uuid = "075b6546-f08a-558a-be8f-8157d0f608a5" version = "1.10.3+0" -[[libvorbis_jll]] +[[deps.libvorbis_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" version = "1.3.7+1" -[[nghttp2_jll]] +[[deps.nghttp2_jll]] deps = ["Artifacts", "Libdl"] uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" version = "1.48.0+0" -[[p7zip_jll]] +[[deps.p7zip_jll]] deps = ["Artifacts", "Libdl"] uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" version = "17.4.0+0" -[[x264_jll]] +[[deps.x264_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" version = "2021.5.5+0" -[[x265_jll]] +[[deps.x265_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" diff --git a/issues/638/main.jl b/issues/638/main.jl index adeb57e59..55bc5ba0b 100644 --- a/issues/638/main.jl +++ b/issues/638/main.jl @@ -17,6 +17,7 @@ model_form = @formula(y ~ v1 + v2 + v3 + v4 + v5 + wts = data[!, :w] contrasts = Dict(:pl3 => Grouping(), :pl5 => Grouping()); # contrasts = Dict(:pl3 => DummyCoding(), :pl5 => DummyCoding()); +fit(MixedModel, model_form, data; wts, contrasts, amalgamate=false) lm(@formula(y ~ v1 + v2 + v3 + v4 + v5), data; wts) # y ~ 1 + v1 + v2 + v3 + v4 + v5 From f56912bd32904780e42294450a277a92a536f4e4 Mon Sep 17 00:00:00 2001 From: Phillip Alday Date: Tue, 8 Aug 2023 14:33:42 -0400 Subject: [PATCH 06/10] relocate news entry --- NEWS.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 7f9833022..74fc15f38 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,5 @@ +* New kwarg `amalgamate` can be used to disable amalgation of random0effects terms sharing a single grouping variable. Generally, `amalgamate=false` will result in a slower fit, but may improve convergence in some pathological cases. [#673] + MixedModels v4.16.0 Release Notes ============================== * Support for check tolerances in deserialization. [#703] @@ -40,7 +42,6 @@ MixedModels v4.9.0 Release Notes * Support `StatsModels` 0.7, drop support for `StatsModels` 0.6. [#664] * Revise code in benchmarks to work with recent Julia and PkgBenchmark.jl [#667] * Julia minimum compat version raised to 1.8 because of BSplineKit [#665] -* New kwarg `amalgamate` can be used to disable amalgation of random0effects terms sharing a single grouping variable. Generally, `amalgamate=false` will result in a slower fit, but may improve convergence in some pathological cases. [#673] MixedModels v4.8.2 Release Notes ============================== From b23b45a3d5b300c65544d7211141e278872d72ee Mon Sep 17 00:00:00 2001 From: Phillip Alday Date: Tue, 8 Aug 2023 15:33:56 -0400 Subject: [PATCH 07/10] add some tests --- test/pls.jl | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/pls.jl b/test/pls.jl index 2b2ab3928..19ec323eb 100644 --- a/test/pls.jl +++ b/test/pls.jl @@ -490,6 +490,17 @@ end @test λ isa Diagonal{Float64, Vector{Float64}} end + @testset "disable amalgamation" begin + fm_chunky = fit(MixedModel, + @formula(reaction ~ 1 + days + (1 | subj) + (0 + days | subj)), + dataset(:sleepstudy); amalgamate=false, progress=false) + + @test loglikelihood(fm_chunky) ≈ loglikelihood(models(:sleepstudy)[2]) + @test length(fm_chunky.reterms) == 2 + vc = sprint(show, VarCorr(fm_chunky)) + @test all(occursin(vc), ["subj", "subj.2"]) + end + show(io, BlockDescription(first(models(:sleepstudy)))) @test countlines(seekstart(io)) == 3 @test "Diagonal" in Set(split(String(take!(io)), r"\s+")) From 93cb9d4d42506ca9db2737591bb77c3796d97cd7 Mon Sep 17 00:00:00 2001 From: Phillip Alday Date: Tue, 8 Aug 2023 15:35:44 -0400 Subject: [PATCH 08/10] mark it experimental in NEWS --- NEWS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 74fc15f38..7980035c7 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,4 @@ -* New kwarg `amalgamate` can be used to disable amalgation of random0effects terms sharing a single grouping variable. Generally, `amalgamate=false` will result in a slower fit, but may improve convergence in some pathological cases. [#673] +* New kwarg `amalgamate` can be used to disable amalgation of random0effects terms sharing a single grouping variable. Generally, `amalgamate=false` will result in a slower fit, but may improve convergence in some pathological cases. Note that this feature is experimental and changes to it are **not** considered breakin. [#673] MixedModels v4.16.0 Release Notes ============================== From e08744397802a8cd61df83b3217def6bca0f9409 Mon Sep 17 00:00:00 2001 From: Phillip Alday Date: Tue, 8 Aug 2023 15:11:38 -0500 Subject: [PATCH 09/10] JuliaFormatter Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- src/linalg/rankUpdate.jl | 4 +++- src/linearmixedmodel.jl | 21 ++++++++++++++------- src/mixedmodel.jl | 4 +++- src/remat.jl | 6 ++++-- 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/src/linalg/rankUpdate.jl b/src/linalg/rankUpdate.jl index 9fc294185..1d215cb17 100644 --- a/src/linalg/rankUpdate.jl +++ b/src/linalg/rankUpdate.jl @@ -16,7 +16,9 @@ function rankUpdate!(C::AbstractMatrix, a::AbstractArray, α, β) ) end -function MixedModels.rankUpdate!(C::Hermitian{T, Diagonal{T, Vector{T}}}, A::Diagonal{T, Vector{T}}, α, β) where {T} +function MixedModels.rankUpdate!( + C::Hermitian{T,Diagonal{T,Vector{T}}}, A::Diagonal{T,Vector{T}}, α, β +) where {T} Cdiag = C.data.diag Adiag = A.diag @inbounds for idx in eachindex(Cdiag, Adiag) diff --git a/src/linearmixedmodel.jl b/src/linearmixedmodel.jl index 3dfa8f7a5..3548ab780 100644 --- a/src/linearmixedmodel.jl +++ b/src/linearmixedmodel.jl @@ -42,9 +42,11 @@ struct LinearMixedModel{T<:AbstractFloat} <: MixedModel{T} end function LinearMixedModel( - f::FormulaTerm, tbl; contrasts=Dict{Symbol,Any}(), wts=[], σ=nothing, amalgamate=true, + f::FormulaTerm, tbl; contrasts=Dict{Symbol,Any}(), wts=[], σ=nothing, amalgamate=true ) - return LinearMixedModel(f::FormulaTerm, Tables.columntable(tbl); contrasts, wts, σ, amalgamate) + return LinearMixedModel( + f::FormulaTerm, Tables.columntable(tbl); contrasts, wts, σ, amalgamate + ) end const _MISSING_RE_ERROR = ArgumentError( @@ -52,7 +54,8 @@ const _MISSING_RE_ERROR = ArgumentError( ) function LinearMixedModel( - f::FormulaTerm, tbl::Tables.ColumnTable; contrasts=Dict{Symbol,Any}(), wts=[], σ=nothing, amalgamate=true, + f::FormulaTerm, tbl::Tables.ColumnTable; contrasts=Dict{Symbol,Any}(), wts=[], + σ=nothing, amalgamate=true, ) # TODO: perform missing_omit() after apply_schema() when improved # missing support is in a StatsModels release @@ -130,7 +133,9 @@ function LinearMixedModel( end end isempty(reterms) && throw(_MISSING_RE_ERROR) - return LinearMixedModel(convert(Array{T}, y), only(feterms), reterms, form, wts, σ, amalgamate) + return LinearMixedModel( + convert(Array{T}, y), only(feterms), reterms, form, wts, σ, amalgamate + ) end """ @@ -192,13 +197,13 @@ function StatsAPI.fit( ::Type{LinearMixedModel}, f::FormulaTerm, tbl; - kwargs... + kwargs..., ) return fit( LinearMixedModel, f, Tables.columntable(tbl); - kwargs... + kwargs..., ) end @@ -214,7 +219,9 @@ function StatsAPI.fit( thin=typemax(Int), amalgamate=true, ) - return fit!(LinearMixedModel(f, tbl; contrasts, wts, σ, amalgamate); progress, REML, thin) + return fit!( + LinearMixedModel(f, tbl; contrasts, wts, σ, amalgamate); progress, REML, thin + ) end function _offseterr() diff --git a/src/mixedmodel.jl b/src/mixedmodel.jl index 0dc24c146..12054c07a 100644 --- a/src/mixedmodel.jl +++ b/src/mixedmodel.jl @@ -106,7 +106,9 @@ Return the conditional means of the random effects as a `NamedTuple` of Tables.j The API guarantee is only that the NamedTuple contains Tables.jl tables and not on the particular concrete type of each table. """ function raneftables(m::MixedModel{T}; uscale=false) where {T} - return NamedTuple{_unique_fnames(m)}((map(retbl, ranef(m; uscale=uscale), m.reterms)...,)) + return NamedTuple{_unique_fnames(m)}(( + map(retbl, ranef(m; uscale=uscale), m.reterms)..., + )) end StatsAPI.residuals(m::MixedModel) = response(m) .- fitted(m) diff --git a/src/remat.jl b/src/remat.jl index 604ddfa47..7272e1c58 100644 --- a/src/remat.jl +++ b/src/remat.jl @@ -510,14 +510,16 @@ function reweight!(A::ReMat, sqrtwts::Vector) end # why nested where? force specialization to eliminate dynamic dispatch -rmulΛ!(A::M, B::ReMat{T,1}) where {M <:Union{Diagonal{T}, Matrix{T}}} where {T} = rmul!(A, only(B.λ)) +function rmulΛ!(A::M, B::ReMat{T,1}) where {M<:Union{Diagonal{T},Matrix{T}}} where {T} + return rmul!(A, only(B.λ)) +end function rmulΛ!(A::SparseMatrixCSC{T}, B::ReMat{T,1}) where {T} rmul!(nonzeros(A), only(B.λ)) return A end -function rmulΛ!(A::M, B::ReMat{T,S}) where {M <:Union{Diagonal{T}, Matrix{T}}} where {T,S} +function rmulΛ!(A::M, B::ReMat{T,S}) where {M<:Union{Diagonal{T},Matrix{T}}} where {T,S} m, n = size(A) q, r = divrem(n, S) iszero(r) || throw(DimensionMismatch("size(A, 2) is not a multiple of block size")) From eb8f9e05bbd8044857d4986e7a9ef816ecaba117 Mon Sep 17 00:00:00 2001 From: Phillip Alday Date: Tue, 8 Aug 2023 15:22:15 -0500 Subject: [PATCH 10/10] JuliaFormatter Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- src/generalizedlinearmixedmodel.jl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/generalizedlinearmixedmodel.jl b/src/generalizedlinearmixedmodel.jl index 2a89299d0..01d0b94ef 100644 --- a/src/generalizedlinearmixedmodel.jl +++ b/src/generalizedlinearmixedmodel.jl @@ -185,7 +185,8 @@ function StatsAPI.fit( kwargs..., ) return fit!( - GeneralizedLinearMixedModel(f, tbl, d, l; wts, offset, contrasts, amalgamate); kwargs... + GeneralizedLinearMixedModel(f, tbl, d, l; wts, offset, contrasts, amalgamate); + kwargs..., ) end @@ -338,7 +339,7 @@ function GeneralizedLinearMixedModel( amalgamate=true, ) return GeneralizedLinearMixedModel( - f, Tables.columntable(tbl), d, l; wts, offset, contrasts, amalgamate, + f, Tables.columntable(tbl), d, l; wts, offset, contrasts, amalgamate ) end