From 98c0d34353b9571cb019a2a12d1683016817f5a1 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Thu, 31 Jul 2025 23:57:37 +0100 Subject: [PATCH 1/5] Fix external sampler docs --- usage/external-samplers/index.qmd | 63 ++++++++++++------------------- 1 file changed, 24 insertions(+), 39 deletions(-) diff --git a/usage/external-samplers/index.qmd b/usage/external-samplers/index.qmd index 016a719e0..acffd8a41 100755 --- a/usage/external-samplers/index.qmd +++ b/usage/external-samplers/index.qmd @@ -83,33 +83,16 @@ You can see an example of how to use `Pathfinder` with Turing in [`Pathfinder`'s ## Using new inference methods So far we have used Turing's support for external samplers to go beyond the capabilities of the wrappers. -We want to use this support to employ a sampler not supported within Turing's ecosystem yet. -We will use the recently developed Micro-Cannoncial Hamiltonian Monte Carlo (MCHMC) sampler to showcase this. -MCHMC[[^3],[^4]] ((MCHMC's GitHub)[https://github.com/JaimeRZP/MicroCanonicalHMC.jl]) is HMC sampler that uses one single Hamiltonian energy level to explore the whole parameter space. -This is achieved by simulating the dynamics of a microcanonical Hamiltonian with an additional noise term to ensure ergodicity. +This is made possible by an interface for external samplers, which is [described in the Turing.jl documentation here](https://turinglang.org/Turing.jl/stable/api/Inference/#Turing.Inference.ExternalSampler): if you are implementing your own sampler and would like it to work with Turing.jl models, that link describes the methods that you need to overload. -Using this as well as other inference methods outside the Turing ecosystem is as simple as executing the code shown below: +For an example of an 'external sampler' that works in this way with Turing, we recommend the [SliceSampling.jl library](https://github.com/TuringLang/SliceSampling.jl). +Note that although this library is hosted under the TuringLang GitHub organisation, it is not a Turing.jl dependency, and thus from Turing's perspective it is truly an 'external' sampler. -```{julia} -using MicroCanonicalHMC -# Create MCHMC sampler -n_adapts = 1_000 # adaptation steps -tev = 0.01 # target energy variance -mchmc = MCHMC(n_adapts, tev; adaptive=true) - -# Sample -chain = sample(model, externalsampler(mchmc), 10_000) -``` - -The only requirement to work with `externalsampler` is that the provided `sampler` must implement the AbstractMCMC.jl-interface [INSERT LINK] for a `model` of type `AbstractMCMC.LogDensityModel` [INSERT LINK]. - -As previously stated, in order to use external sampling libraries within `Turing` they must follow the `AbstractMCMC` API. -In this section, we will briefly dwell on what this entails. -First and foremost, the sampler should be a subtype of `AbstractMCMC.AbstractSampler`. +In this section, we will briefly go through the interface requirements for external samplers. +First and foremost, the sampler `T` should be a subtype of `AbstractMCMC.AbstractSampler`. Second, the stepping function of the MCMC algorithm must be made defined using `AbstractMCMC.step` and follow the structure below: -```{julia} -#| eval: false +```julia # First step function AbstractMCMC.step{T<:AbstractMCMC.AbstractSampler}( rng::Random.AbstractRNG, @@ -118,7 +101,7 @@ function AbstractMCMC.step{T<:AbstractMCMC.AbstractSampler}( kwargs..., ) [...] - return transition, sample + return transition, state end # N+1 step @@ -130,32 +113,34 @@ function AbstractMCMC.step{T<:AbstractMCMC.AbstractSampler}( kwargs..., ) [...] - return transition, sample + return transition, state end ``` There are several characteristics to note in these functions: - - There must be two `step` functions: +- There must be two `step` functions: - + A function that performs the first step and initializes the sampler. - + A function that performs the following steps and takes an extra input, `state`, which carries the initialization information. + + A function that performs the first step and initializes the sampler. + + A function that performs the following steps and takes an extra input, `state`, which carries the initialization information. - - The functions must follow the displayed signatures. - - The output of the functions must be a transition, the current state of the sampler, and a sample, what is saved to the MCMC chain. +- The functions must follow the displayed signatures. +- The output of the functions must be a tuple containing: + + a 'transition', which is essentially the 'visible output' of the sampler: this object is later used to construct an `MCMCChains.Chains`; + + a 'state', representing the current state of the sampler, which is passed to the next step of the MCMC algorithm. -The last requirement is that the transition must be structured with a field `θ`, which contains the values of the parameters of the model for said transition. -This allows `Turing` to seamlessly extract the parameter values at each step of the chain when bundling the chains. -Note that if the external sampler produces transitions that Turing cannot parse, the bundling of the samples will be different or fail. +On top of this, your sampler state should also implement `AbstractMCMC.getparams`: -For practical examples of how to adapt a sampling library to the `AbstractMCMC` interface, the readers can consult the following libraries: +```julia +function AbstractMCMC.getparams(model::DynamicPPL.Model, spl::T) + # Return a vector containing the parameters of the model. +end +``` - - [AdvancedMH](https://github.com/TuringLang/AdvancedMH.jl/blob/458a602ac32a8514a117d4c671396a9ba8acbdab/src/mh-core.jl#L73-L115) - - [AdvancedHMC](https://github.com/TuringLang/AdvancedHMC.jl/blob/762e55f894d142495a41a6eba0eed9201da0a600/src/abstractmcmc.jl#L102-L170) - - [MicroCanonicalHMC](https://github.com/JaimeRZP/MicroCanonicalHMC.jl/blob/master/src/abstractmcmc.jl) +It is possible that `getparams` can be implemented without using the model, in which case you can just define `getparams(::Any, spl::T)`. +These functions are the bare minimum that your external sampler must implement to work with Turing models. +There are other methods which can be overloaded to improve the performance or other features of the sampler; please refer to the documentation linked above for more details. [^1]: Xu et al., [AdvancedHMC.jl: A robust, modular and efficient implementation of advanced HMC algorithms](http://proceedings.mlr.press/v118/xu20a/xu20a.pdf), 2019 [^2]: Zhang et al., [Pathfinder: Parallel quasi-Newton variational inference](https://arxiv.org/abs/2108.03782), 2021 -[^3]: Robnik et al, [Microcanonical Hamiltonian Monte Carlo](https://arxiv.org/abs/2212.08549), 2022 -[^4]: Robnik and Seljak, [Langevine Hamiltonian Monte Carlo](https://arxiv.org/abs/2303.18221), 2023 From 0bd30610452c7cc84e16158b2d11b13ca4ec521c Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Thu, 31 Jul 2025 23:57:51 +0100 Subject: [PATCH 2/5] Remove MCHMC as a dep --- Manifest.toml | 68 +-------------------------------------------------- Project.toml | 1 - 2 files changed, 1 insertion(+), 68 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index e41cb809e..51eb63c1d 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -2,7 +2,7 @@ julia_version = "1.11.6" manifest_format = "2.0" -project_hash = "296b7e06e398e8898b40f44ed92b4d60c484484c" +project_hash = "3c5b0696513a84be8573e377b59e1ab532411868" [[deps.ADTypes]] git-tree-sha1 = "be7ae030256b8ef14a441726c4c37766b90b93a3" @@ -1299,24 +1299,6 @@ git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" version = "1.0.2" -[[deps.HDF5]] -deps = ["Compat", "HDF5_jll", "Libdl", "MPIPreferences", "Mmap", "Preferences", "Printf", "Random", "Requires", "UUIDs"] -git-tree-sha1 = "e856eef26cf5bf2b0f95f8f4fc37553c72c8641c" -uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" -version = "0.17.2" - - [deps.HDF5.extensions] - MPIExt = "MPI" - - [deps.HDF5.weakdeps] - MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" - -[[deps.HDF5_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "LibCURL_jll", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "OpenSSL_jll", "TOML", "Zlib_jll", "libaec_jll"] -git-tree-sha1 = "e94f84da9af7ce9c6be049e9067e511e17ff89ec" -uuid = "0234f1f7-429e-5d53-9886-15a909be8d59" -version = "1.14.6+0" - [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "PrecompileTools", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] git-tree-sha1 = "ed5e9c58612c4e081aecdb6e1a479e18462e041e" @@ -1344,12 +1326,6 @@ weakdeps = ["Distributions"] [deps.HiddenMarkovModels.extensions] HiddenMarkovModelsDistributionsExt = "Distributions" -[[deps.Hwloc_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "92f65c4d78ce8cdbb6b68daf88889950b0a99d11" -uuid = "e33a78d0-f292-5ffc-b300-72abe9b543c8" -version = "2.12.1+0" - [[deps.HypergeometricFunctions]] deps = ["LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] git-tree-sha1 = "68c173f4f449de5b438ee67ed0c9c748dc31a2ec" @@ -2072,24 +2048,6 @@ git-tree-sha1 = "a772d8d1987433538a5c226f79393324b55f7846" uuid = "f1d291b0-491e-4a28-83b9-f70985020b54" version = "0.4.8" -[[deps.MPICH_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "d72d0ecc3f76998aac04e446547259b9ae4c265f" -uuid = "7cb0a576-ebde-5e09-9194-50597f1243b4" -version = "4.3.1+0" - -[[deps.MPIPreferences]] -deps = ["Libdl", "Preferences"] -git-tree-sha1 = "c105fe467859e7f6e9a852cb15cb4301126fac07" -uuid = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" -version = "0.1.11" - -[[deps.MPItrampoline_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "e214f2a20bdd64c04cd3e4ff62d3c9be7e969a59" -uuid = "f1f71cc9-e9ae-5b93-9b94-4fe0e1ad3748" -version = "5.5.4+0" - [[deps.MacroTools]] git-tree-sha1 = "1e0228a030642014fe5cfe68c2c0a818f9e3f522" uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" @@ -2152,24 +2110,12 @@ git-tree-sha1 = "7dbf904fa6c4447bd1f1d316886bfbe29feacf45" uuid = "6fafb56a-5788-4b4e-91ca-c0cea6611c73" version = "0.2.2" -[[deps.MicroCanonicalHMC]] -deps = ["AbstractMCMC", "Adapt", "Distributions", "ForwardDiff", "HDF5", "LinearAlgebra", "LogDensityProblems", "LogDensityProblemsAD", "MCMCChains", "MCMCDiagnosticTools", "Markdown", "ProgressMeter", "Random", "Statistics"] -git-tree-sha1 = "99fd367f8b8fc9d479420d33e8f16f3dab3162f4" -uuid = "234d2aa0-2291-45f7-9047-6fa6f316b0a8" -version = "0.1.6" - [[deps.MicroCollections]] deps = ["Accessors", "BangBang", "InitialValues"] git-tree-sha1 = "44d32db644e84c75dab479f1bc15ee76a1a3618f" uuid = "128add7d-3638-4c79-886c-908ea0c25c34" version = "0.2.0" -[[deps.MicrosoftMPI_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "bc95bf4149bf535c09602e3acdf950d9b4376227" -uuid = "9237b28f-5490-5468-be7b-bb81f5f5e6cf" -version = "10.1.4+3" - [[deps.Missings]] deps = ["DataAPI"] git-tree-sha1 = "ec4f7fbeab05d7747bdf98eb74d130a2a2ed298d" @@ -2443,12 +2389,6 @@ deps = ["Artifacts", "Libdl"] uuid = "05823500-19ac-5b8b-9628-191a04bc5112" version = "0.8.5+0" -[[deps.OpenMPI_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML", "Zlib_jll"] -git-tree-sha1 = "ec764453819f802fc1e144bfe750c454181bd66d" -uuid = "fe0851c0-eecd-5654-98d4-656369965a5c" -version = "5.0.8+0" - [[deps.OpenSSL]] deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] git-tree-sha1 = "f1a7e086c677df53e064e0fdd2c9d0b0833e3f6e" @@ -3994,12 +3934,6 @@ git-tree-sha1 = "b6a34e0e0960190ac2a4363a1bd003504772d631" uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" version = "0.61.1+0" -[[deps.libaec_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "f5733a5a9047722470b95a81e1b172383971105c" -uuid = "477f73a3-ac25-53e9-8cc3-50b2fa2566f0" -version = "1.1.3+0" - [[deps.libaom_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "522c1df09d05a71785765d19c9524661234738e9" diff --git a/Project.toml b/Project.toml index 6489bd760..af37a3fd6 100644 --- a/Project.toml +++ b/Project.toml @@ -35,7 +35,6 @@ MLUtils = "f1d291b0-491e-4a28-83b9-f70985020b54" MacroTools = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" Measures = "442fdcdd-2543-5da2-b0f3-8c86c306513e" Memoization = "6fafb56a-5788-4b4e-91ca-c0cea6611c73" -MicroCanonicalHMC = "234d2aa0-2291-45f7-9047-6fa6f316b0a8" Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" NNlib = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" Optimisers = "3bd65402-5787-11e9-1adc-39752487f4e2" From 74fc4f6f7d857ef347560b85f11b0c3fc89950ed Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Fri, 1 Aug 2025 00:05:22 +0100 Subject: [PATCH 3/5] update --- Manifest.toml | 332 ++++++++++++++++++++++++-------------------------- 1 file changed, 158 insertions(+), 174 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index 51eb63c1d..bda9a3d4c 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -5,9 +5,9 @@ manifest_format = "2.0" project_hash = "3c5b0696513a84be8573e377b59e1ab532411868" [[deps.ADTypes]] -git-tree-sha1 = "be7ae030256b8ef14a441726c4c37766b90b93a3" +git-tree-sha1 = "7927b9af540ee964cc5d1b73293f1eb0b761a3a1" uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -version = "1.15.0" +version = "1.16.0" weakdeps = ["ChainRulesCore", "ConstructionBase", "EnzymeCore"] [deps.ADTypes.extensions] @@ -33,10 +33,10 @@ uuid = "99985d1d-32ba-4be9-9821-2ec096f28918" version = "0.5.24" [[deps.AbstractMCMC]] -deps = ["BangBang", "ConsoleProgressMonitor", "Distributed", "FillArrays", "LogDensityProblems", "Logging", "LoggingExtras", "ProgressLogging", "Random", "StatsBase", "TerminalLoggers", "Transducers"] -git-tree-sha1 = "fdf711adc3fab05756e391ff92c38645b8e6847a" +deps = ["BangBang", "ConsoleProgressMonitor", "Distributed", "FillArrays", "LogDensityProblems", "Logging", "LoggingExtras", "ProgressLogging", "Random", "StatsBase", "TerminalLoggers", "Transducers", "UUIDs"] +git-tree-sha1 = "e4b6a25ba2e033c74ea11720daacafbc2ab50a7e" uuid = "80f14c24-f653-4e6a-9b94-39d6b0f70001" -version = "5.6.3" +version = "5.7.2" [[deps.AbstractPPL]] deps = ["AbstractMCMC", "Accessors", "DensityInterface", "JSON", "Random", "StatsBase"] @@ -118,9 +118,9 @@ weakdeps = ["DiffResults", "ForwardDiff", "MCMCChains", "StructArrays"] [[deps.AdvancedPS]] deps = ["AbstractMCMC", "Distributions", "Random", "Random123", "Requires", "SSMProblems", "StatsFuns"] -git-tree-sha1 = "31ba83dcaa79c29ad7205770b701950a94882b0b" +git-tree-sha1 = "5d34d826ece67ce790d4a7f3f97d837e52aba7f8" uuid = "576499cb-2369-40b2-a588-c64705576edc" -version = "0.6.2" +version = "0.7.0" weakdeps = ["Libtask"] [deps.AdvancedPS.extensions] @@ -208,10 +208,10 @@ version = "7.19.0" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" [[deps.ArrayLayouts]] -deps = ["FillArrays", "LinearAlgebra"] -git-tree-sha1 = "4e25216b8fea1908a0ce0f5d87368587899f75be" +deps = ["FillArrays", "LinearAlgebra", "StaticArrays"] +git-tree-sha1 = "120e392af69350960b1d3b89d41dcc1d66543858" uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "1.11.1" +version = "1.11.2" weakdeps = ["SparseArrays"] [deps.ArrayLayouts.extensions] @@ -344,9 +344,9 @@ version = "1.8.0" [[deps.BoundaryValueDiffEqCore]] deps = ["ADTypes", "Adapt", "ArrayInterface", "ConcreteStructs", "DiffEqBase", "ForwardDiff", "LineSearch", "LinearAlgebra", "Logging", "NonlinearSolveFirstOrder", "PreallocationTools", "RecursiveArrayTools", "Reexport", "SciMLBase", "Setfield", "SparseArrays", "SparseConnectivityTracer", "SparseMatrixColorings"] -git-tree-sha1 = "9b302ba0af3e17e8d468ae95af13415016be8ab0" +git-tree-sha1 = "b7b4d8cc80f116eab2eb6124dba58ea7aef31b85" uuid = "56b672f2-a5fe-4263-ab2d-da677488eb3a" -version = "1.11.0" +version = "1.11.1" [[deps.BoundaryValueDiffEqFIRK]] deps = ["ADTypes", "ArrayInterface", "BandedMatrices", "BoundaryValueDiffEqCore", "ConcreteStructs", "DiffEqBase", "DifferentiationInterface", "FastAlmostBandedMatrices", "FastClosures", "ForwardDiff", "LinearAlgebra", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "Setfield", "SparseArrays"] @@ -545,9 +545,9 @@ version = "1.0.0" [[deps.Compat]] deps = ["TOML", "UUIDs"] -git-tree-sha1 = "3a3dfb30697e96a440e4149c8c51bf32f818c0f3" +git-tree-sha1 = "0037835448781bb46feb39866934e243886d756a" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.17.0" +version = "4.18.0" weakdeps = ["Dates", "LinearAlgebra"] [deps.Compat.extensions] @@ -560,9 +560,9 @@ version = "1.1.1+0" [[deps.ComponentArrays]] deps = ["Adapt", "ArrayInterface", "ChainRulesCore", "ConstructionBase", "Functors", "LinearAlgebra", "StaticArrayInterface", "StaticArraysCore"] -git-tree-sha1 = "03aaee628bc8bb682570d70b16d8102b8220ff5a" +git-tree-sha1 = "d8b02e2226568644b6758b2d113fe5b08884eec0" uuid = "b0b7db55-cfe3-40fc-9ded-d10e2dbeff66" -version = "0.15.28" +version = "0.15.29" [deps.ComponentArrays.extensions] ComponentArraysGPUArraysExt = "GPUArrays" @@ -684,10 +684,10 @@ uuid = "244e2a9f-e319-4986-a169-4d1fe445cd52" version = "0.1.2" [[deps.DelayDiffEq]] -deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "LinearAlgebra", "Logging", "OrdinaryDiffEq", "OrdinaryDiffEqCore", "OrdinaryDiffEqDefault", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqRosenbrock", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SimpleUnPack", "SymbolicIndexingInterface"] -git-tree-sha1 = "8b416f6b1f9ef8df4c13dd0fe6c191752722b36f" +deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "FastBroadcast", "ForwardDiff", "LinearAlgebra", "Logging", "OrdinaryDiffEq", "OrdinaryDiffEqCore", "OrdinaryDiffEqDefault", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqFunctionMap", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqRosenbrock", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SimpleUnPack", "SymbolicIndexingInterface"] +git-tree-sha1 = "484cceb16c5ed95f4a2a405f3579f480ec0dff9a" uuid = "bcd4f6db-9728-5f36-b5f7-82caef46ccdb" -version = "5.53.1" +version = "5.55.0" [[deps.DelimitedFiles]] deps = ["Mmap"] @@ -703,9 +703,9 @@ version = "0.4.0" [[deps.DiffEqBase]] deps = ["ArrayInterface", "ConcreteStructs", "DataStructures", "DocStringExtensions", "EnumX", "EnzymeCore", "FastBroadcast", "FastClosures", "FastPower", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PrecompileTools", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SciMLStructures", "Setfield", "Static", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "TruncatedStacktraces"] -git-tree-sha1 = "e9b34e0eb3443492f396c97e7fed08630752a4f2" +git-tree-sha1 = "6f8f25122389ba34e491bdfe143ae16fda37cad3" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.177.2" +version = "6.180.0" [deps.DiffEqBase.extensions] DiffEqBaseCUDAExt = "CUDA" @@ -777,9 +777,9 @@ version = "7.16.1" [[deps.DifferentiationInterface]] deps = ["ADTypes", "LinearAlgebra"] -git-tree-sha1 = "c092fd1dd0d94e609cd0d29e13897b2825c804bb" +git-tree-sha1 = "f620da805b82bec64ab4d5f881c7592c82dbc08a" uuid = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" -version = "0.7.2" +version = "0.7.3" [deps.DifferentiationInterface.extensions] DifferentiationInterfaceChainRulesCoreExt = "ChainRulesCore" @@ -929,9 +929,9 @@ version = "1.0.5" [[deps.Enzyme]] deps = ["CEnum", "EnzymeCore", "Enzyme_jll", "GPUCompiler", "InteractiveUtils", "LLVM", "Libdl", "LinearAlgebra", "ObjectFile", "PrecompileTools", "Preferences", "Printf", "Random", "SparseArrays"] -git-tree-sha1 = "6d85ffa95b11e51f82dd72efea1f88b88d7ec444" +git-tree-sha1 = "e36968f0a43d9a3b627ac94d5346b458ce14066d" uuid = "7da242da-08ed-463a-9acd-ee780be4f1d9" -version = "0.13.59" +version = "0.13.65" [deps.Enzyme.extensions] EnzymeBFloat16sExt = "BFloat16s" @@ -960,9 +960,9 @@ weakdeps = ["Adapt"] [[deps.Enzyme_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "7ea609b06402406450cd8c73bc6adbbb1f7fffc0" +git-tree-sha1 = "a357a553f8dfd461756ff8ed66fd541bdf2d1588" uuid = "7cc45869-7501-5eee-bdea-0790c847d4ef" -version = "0.0.185+0" +version = "0.0.188+0" [[deps.EpollShim_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1004,15 +1004,15 @@ version = "0.10.14" [[deps.FFMPEG]] deps = ["FFMPEG_jll"] -git-tree-sha1 = "53ebe7511fa11d33bec688a9178fac4e49eeee00" +git-tree-sha1 = "83dc665d0312b41367b7263e8a4d172eac1897f4" uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" -version = "0.4.2" +version = "0.4.4" [[deps.FFMPEG_jll]] deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] -git-tree-sha1 = "466d45dc38e15794ec7d5d63ec03d776a9aff36e" +git-tree-sha1 = "3a948313e7a41eb1db7a1e733e6335f17b4ab3c4" uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" -version = "4.4.4+1" +version = "7.1.1+0" [[deps.FFTW]] deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] @@ -1147,9 +1147,9 @@ version = "0.8.5" [[deps.Flux]] deps = ["Adapt", "ChainRulesCore", "Compat", "EnzymeCore", "Functors", "LinearAlgebra", "MLCore", "MLDataDevices", "MLUtils", "MacroTools", "NNlib", "OneHotArrays", "Optimisers", "Preferences", "ProgressLogging", "Random", "Reexport", "Setfield", "SparseArrays", "SpecialFunctions", "Statistics", "Zygote"] -git-tree-sha1 = "2c35003ec8dafabdc48549102208b1b15552cb33" +git-tree-sha1 = "d0751ca4c9762d9033534057274235dfef86aaf9" uuid = "587475ba-b771-5e3f-ad9e-33799f191a9c" -version = "0.16.4" +version = "0.16.5" [deps.Flux.extensions] FluxAMDGPUExt = "AMDGPU" @@ -1180,9 +1180,9 @@ version = "1.3.7" [[deps.ForwardDiff]] deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] -git-tree-sha1 = "a2df1b776752e3f344e5116c06d75a10436ab853" +git-tree-sha1 = "910febccb28d493032495b7009dce7d7f7aee554" uuid = "f6369f11-7733-5829-9624-2563aa707210" -version = "0.10.38" +version = "1.0.1" weakdeps = ["StaticArrays"] [deps.ForwardDiff.extensions] @@ -1368,9 +1368,9 @@ version = "1.4.4" [[deps.IntelOpenMP_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl"] -git-tree-sha1 = "0f14a5456bdc6b9731a5682f439a672750a09e48" +git-tree-sha1 = "ec1debd61c300961f98064cfb21287613ad7f303" uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" -version = "2025.0.4+0" +version = "2025.2.0+0" [[deps.InteractiveUtils]] deps = ["Markdown"] @@ -1436,9 +1436,9 @@ version = "0.1.11" [[deps.JLLWrappers]] deps = ["Artifacts", "Preferences"] -git-tree-sha1 = "a007feb38b422fbdab534406aeca1b86823cb4d6" +git-tree-sha1 = "0533e564aae234aff59ab625543145446d8b6ec2" uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" -version = "1.7.0" +version = "1.7.1" [[deps.JSON]] deps = ["Dates", "Mmap", "Parsers", "Unicode"] @@ -1473,9 +1473,9 @@ weakdeps = ["FastBroadcast"] [[deps.KernelAbstractions]] deps = ["Adapt", "Atomix", "InteractiveUtils", "MacroTools", "PrecompileTools", "Requires", "StaticArrays", "UUIDs"] -git-tree-sha1 = "38a03910123867c11af988e8718d12c98bf6a234" +git-tree-sha1 = "83c617e9e9b02306a7acab79e05ec10253db7c87" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.37" +version = "0.9.38" weakdeps = ["EnzymeCore", "LinearAlgebra", "SparseArrays"] [deps.KernelAbstractions.extensions] @@ -1543,15 +1543,6 @@ git-tree-sha1 = "eb62a3deb62fc6d8822c0c4bef73e4412419c5d8" uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" version = "18.1.8+0" -[[deps.LRUCache]] -git-tree-sha1 = "5519b95a490ff5fe629c4a7aa3b3dfc9160498b3" -uuid = "8ac3fa9e-de4c-5943-b1dc-09c6b5f20637" -version = "1.6.2" -weakdeps = ["Serialization"] - - [deps.LRUCache.extensions] - SerializationExt = ["Serialization"] - [[deps.LZO_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "1c602b1127f4751facb671441ca72715cc95938a" @@ -1595,9 +1586,9 @@ version = "0.1.17" [[deps.LazyArrays]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "MacroTools", "SparseArrays"] -git-tree-sha1 = "866ce84b15e54d758c11946aacd4e5df0e60b7a3" +git-tree-sha1 = "76627adb8c542c6b73f68d4bfd0aa71c9893a079" uuid = "5078a376-72f3-5289-bfd5-ec5146d43c02" -version = "2.6.1" +version = "2.6.2" [deps.LazyArrays.extensions] LazyArraysBandedMatricesExt = "BandedMatrices" @@ -1630,9 +1621,9 @@ version = "0.3.0" [[deps.LeftChildRightSiblingTrees]] deps = ["AbstractTrees"] -git-tree-sha1 = "fb6803dafae4a5d62ea5cab204b1e657d9737e7f" +git-tree-sha1 = "95ba48564903b43b2462318aa243ee79d81135ff" uuid = "1d6d02ad-be62-4b6b-8a6d-2f90e265016e" -version = "0.2.0" +version = "0.2.1" [[deps.LevyArea]] deps = ["LinearAlgebra", "Random", "SpecialFunctions"] @@ -1700,10 +1691,10 @@ uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" version = "2.41.0+0" [[deps.Libtask]] -deps = ["FunctionWrappers", "LRUCache", "LinearAlgebra", "Statistics"] -git-tree-sha1 = "902ece54b0cb5c5413a8a15db0ad2aa2ec4172d2" +deps = ["MistyClosures", "Test"] +git-tree-sha1 = "6a9b56c32b39c6e45f8265cfd3ce971c3a8f7b75" uuid = "6f1fad26-d15e-5dc8-ae53-837a1d7b8c9f" -version = "0.8.8" +version = "0.9.4" [[deps.Libtiff_jll]] deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] @@ -1740,9 +1731,9 @@ version = "1.11.0" [[deps.LinearSolve]] deps = ["ArrayInterface", "ChainRulesCore", "ConcreteStructs", "DocStringExtensions", "EnumX", "GPUArraysCore", "InteractiveUtils", "Krylov", "LazyArrays", "Libdl", "LinearAlgebra", "MKL_jll", "Markdown", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "Setfield", "StaticArraysCore", "UnPack"] -git-tree-sha1 = "062c11f1d84ffc80d00fddaa515f7e37e8e9f9d5" +git-tree-sha1 = "d768ff40cc3fe42581708696b24ee65dccc9c6ba" uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" -version = "3.18.2" +version = "3.24.0" [deps.LinearSolve.extensions] LinearSolveBandedMatricesExt = "BandedMatrices" @@ -1907,9 +1898,9 @@ version = "1.2.6" [[deps.LuxLib]] deps = ["ArrayInterface", "CPUSummary", "ChainRulesCore", "Compat", "DispatchDoctor", "EnzymeCore", "FastClosures", "ForwardDiff", "Functors", "KernelAbstractions", "LinearAlgebra", "LuxCore", "MLDataDevices", "Markdown", "NNlib", "Polyester", "Preferences", "Random", "Reexport", "Static", "StaticArraysCore", "Statistics"] -git-tree-sha1 = "a3c5d3485c6cdf0c13d81678b9c82a6f4e5e4eca" +git-tree-sha1 = "bf64921ca8182e3ee34a56b05b9f1ed568141a13" uuid = "82251201-b29d-42c6-8e01-566dec8acb11" -version = "1.10.0" +version = "1.10.1" [deps.LuxLib.extensions] LuxLibAppleAccelerateExt = "AppleAccelerate" @@ -1944,10 +1935,10 @@ version = "1.10.0" cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" [[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 = "cd7aee22384792c726e19f2a22dc060b886edded" +deps = ["AbstractMCMC", "AxisArrays", "DataAPI", "Dates", "Distributions", "IteratorInterfaceExtensions", "KernelDensity", "LinearAlgebra", "MCMCDiagnosticTools", "MLJModelInterface", "NaturalSort", "OrderedCollections", "PrettyTables", "Random", "RecipesBase", "Statistics", "StatsBase", "StatsFuns", "TableTraits", "Tables"] +git-tree-sha1 = "a1b9bf62acb012e4a717562f83f859257c5b6fec" uuid = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" -version = "6.0.7" +version = "7.1.0" [[deps.MCMCDiagnosticTools]] deps = ["AbstractFFTs", "DataAPI", "DataStructures", "Distributions", "LinearAlgebra", "MLJModelInterface", "Random", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns", "Tables"] @@ -1957,9 +1948,9 @@ version = "0.3.14" [[deps.MKL_jll]] deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "oneTBB_jll"] -git-tree-sha1 = "5de60bc6cb3899cd318d80d627560fae2e2d99ae" +git-tree-sha1 = "282cadc186e7b2ae0eeadbd7a4dffed4196ae2aa" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" -version = "2025.0.1+1" +version = "2025.2.0+0" [[deps.MLCore]] deps = ["DataAPI", "SimpleTraits", "Tables"] @@ -1969,9 +1960,9 @@ version = "1.0.0" [[deps.MLDataDevices]] deps = ["Adapt", "Compat", "Functors", "Preferences", "Random"] -git-tree-sha1 = "209390b236bb04b289c708054fe1df06a4b314b5" +git-tree-sha1 = "0ad0d8f83ddf28a7eba28ed94d0d68015ce645b7" uuid = "7e8f7934-dd98-4c1a-8fe8-92b47a384d40" -version = "1.11.0" +version = "1.11.1" [deps.MLDataDevices.extensions] MLDataDevicesAMDGPUExt = "AMDGPU" @@ -2026,10 +2017,10 @@ uuid = "cc2ba9b6-d476-5e6d-8eaf-a92d5412d41d" version = "0.5.4" [[deps.MLJModelInterface]] -deps = ["REPL", "Random", "ScientificTypesBase", "StatisticalTraits"] -git-tree-sha1 = "66626f80d5807921045d539b4f7153b1d47c5f8a" +deps = ["InteractiveUtils", "REPL", "Random", "ScientificTypesBase", "StatisticalTraits"] +git-tree-sha1 = "ccaa3f7938890ee8042cc970ba275115428bd592" uuid = "e80e1ace-859a-464e-9ed9-23947d8ae3ea" -version = "1.11.1" +version = "1.12.0" [[deps.MLLabelUtils]] deps = ["LearnBase", "MappedArrays", "StatsBase"] @@ -2139,9 +2130,9 @@ version = "0.8.1" [[deps.Mooncake]] deps = ["ADTypes", "ChainRules", "ChainRulesCore", "DiffRules", "DispatchDoctor", "ExprTools", "FunctionWrappers", "GPUArraysCore", "Graphs", "InteractiveUtils", "LinearAlgebra", "MistyClosures", "Random", "Test"] -git-tree-sha1 = "005e57fd321b90e9ae47c7cbb5dbdfff78651623" +git-tree-sha1 = "88bb6e5054ba4a341c8fb7047af859720669628d" uuid = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" -version = "0.4.138" +version = "0.4.142" [deps.Mooncake.extensions] MooncakeAllocCheckExt = "AllocCheck" @@ -2194,9 +2185,9 @@ version = "7.10.0" [[deps.NLopt]] deps = ["CEnum", "NLopt_jll"] -git-tree-sha1 = "de3a001641c8b9fb52b96082327f5f99ae302fcc" +git-tree-sha1 = "624785b15005a0e0f4e462b27ee745dbe5941863" uuid = "76087f3c-5699-56af-9a33-bf431cd00edd" -version = "1.2.0" +version = "1.2.1" [deps.NLopt.extensions] NLoptMathOptInterfaceExt = ["MathOptInterface"] @@ -2218,9 +2209,9 @@ version = "4.5.1" [[deps.NNlib]] deps = ["Adapt", "Atomix", "ChainRulesCore", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Random", "ScopedValues", "Statistics"] -git-tree-sha1 = "4abc63cdd8dd9dd925d8e879cda280bedc8013ca" +git-tree-sha1 = "eb6eb10b675236cee09a81da369f94f16d77dc2f" uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" -version = "0.9.30" +version = "0.9.31" [deps.NNlib.extensions] NNlibAMDGPUExt = "AMDGPU" @@ -2275,9 +2266,9 @@ version = "1.2.0" [[deps.NonlinearSolve]] deps = ["ADTypes", "ArrayInterface", "BracketingNonlinearSolve", "CommonSolve", "ConcreteStructs", "DiffEqBase", "DifferentiationInterface", "FastClosures", "FiniteDiff", "ForwardDiff", "LineSearch", "LinearAlgebra", "LinearSolve", "NonlinearSolveBase", "NonlinearSolveFirstOrder", "NonlinearSolveQuasiNewton", "NonlinearSolveSpectralMethods", "PrecompileTools", "Preferences", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SparseArrays", "SparseMatrixColorings", "StaticArraysCore", "SymbolicIndexingInterface"] -git-tree-sha1 = "aeb6fb02e63b4d4f90337ed90ce54ceb4c0efe77" +git-tree-sha1 = "d2ec18c1e4eccbb70b64be2435fc3b06fbcdc0a1" uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" -version = "4.9.0" +version = "4.10.0" [deps.NonlinearSolve.extensions] NonlinearSolveFastLevenbergMarquardtExt = "FastLevenbergMarquardt" @@ -2307,9 +2298,9 @@ version = "4.9.0" [[deps.NonlinearSolveBase]] deps = ["ADTypes", "Adapt", "ArrayInterface", "CommonSolve", "Compat", "ConcreteStructs", "DifferentiationInterface", "EnzymeCore", "FastClosures", "LinearAlgebra", "Markdown", "MaybeInplace", "Preferences", "Printf", "RecursiveArrayTools", "SciMLBase", "SciMLJacobianOperators", "SciMLOperators", "StaticArraysCore", "SymbolicIndexingInterface", "TimerOutputs"] -git-tree-sha1 = "404d71dd057759f4d590191a643113485c4a482a" +git-tree-sha1 = "ee395563ae6ffaecbdf86d430440fddc779253a4" uuid = "be0214bd-f91f-a760-ac4e-3421ce2b2da0" -version = "1.12.0" +version = "1.13.0" weakdeps = ["BandedMatrices", "DiffEqBase", "ForwardDiff", "LineSearch", "LinearSolve", "SparseArrays", "SparseMatrixColorings"] [deps.NonlinearSolveBase.extensions] @@ -2323,15 +2314,15 @@ weakdeps = ["BandedMatrices", "DiffEqBase", "ForwardDiff", "LineSearch", "Linear [[deps.NonlinearSolveFirstOrder]] deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConcreteStructs", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LineSearch", "LinearAlgebra", "LinearSolve", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase", "SciMLJacobianOperators", "Setfield", "StaticArraysCore"] -git-tree-sha1 = "9c8cd0a986518ba317af263549b48e34ac8f776d" +git-tree-sha1 = "65101a20b135616a13625ae6f84b052ef5780363" uuid = "5959db7a-ea39-4486-b5fe-2dd0bf03d60d" -version = "1.5.0" +version = "1.6.0" [[deps.NonlinearSolveQuasiNewton]] deps = ["ArrayInterface", "CommonSolve", "ConcreteStructs", "DiffEqBase", "LinearAlgebra", "LinearSolve", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase", "SciMLOperators", "StaticArraysCore"] -git-tree-sha1 = "e3888bdbab6e0bfadbc3164ef4595e40e7b7e954" +git-tree-sha1 = "3e04c917d4e3cd48b2a5091b6f76c720bb3f7362" uuid = "9a2c21bd-3a47-402d-9113-8faf9a0ee114" -version = "1.6.0" +version = "1.7.0" weakdeps = ["ForwardDiff"] [deps.NonlinearSolveQuasiNewton.extensions] @@ -2443,9 +2434,9 @@ version = "4.4.0" [[deps.OptimizationBase]] deps = ["ADTypes", "ArrayInterface", "DifferentiationInterface", "DocStringExtensions", "FastClosures", "LinearAlgebra", "PDMats", "Reexport", "Requires", "SciMLBase", "SparseArrays", "SparseConnectivityTracer", "SparseMatrixColorings"] -git-tree-sha1 = "d42ca664e1fd78cdbe4186d4773d4fa51e1a0e78" +git-tree-sha1 = "474b2fa6de9288d34b8ad42c9c500088132621a7" uuid = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" -version = "2.8.0" +version = "2.10.0" [deps.OptimizationBase.extensions] OptimizationEnzymeExt = "Enzyme" @@ -2494,9 +2485,9 @@ version = "1.8.1" [[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", "Static", "StaticArrayInterface", "StaticArrays", "TruncatedStacktraces"] -git-tree-sha1 = "1c2b2df870944e0dc01454fd87479847c55fa26c" +git-tree-sha1 = "55c21fdb4626037cdbcb04fec3afa192345a24de" uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" -version = "6.98.0" +version = "6.101.0" [[deps.OrdinaryDiffEqAdamsBashforthMoulton]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqLowOrderRK", "Polyester", "RecursiveArrayTools", "Reexport", "Static"] @@ -2506,9 +2497,9 @@ version = "1.2.0" [[deps.OrdinaryDiffEqBDF]] deps = ["ADTypes", "ArrayInterface", "DiffEqBase", "FastBroadcast", "LinearAlgebra", "MacroTools", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqSDIRK", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "StaticArrays", "TruncatedStacktraces"] -git-tree-sha1 = "9124a686af119063bb4d3a8f87044a8f312fcad9" +git-tree-sha1 = "b0bbc6541ea4a27974bd67e0a10b26211cb95e58" uuid = "6ad6398a-0878-4a85-9266-38940aa047c8" -version = "1.6.0" +version = "1.7.0" [[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"] @@ -2529,9 +2520,9 @@ version = "1.5.0" [[deps.OrdinaryDiffEqDifferentiation]] deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "ConstructionBase", "DiffEqBase", "DifferentiationInterface", "FastBroadcast", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "LinearAlgebra", "LinearSolve", "OrdinaryDiffEqCore", "SciMLBase", "SciMLOperators", "SparseArrays", "SparseMatrixColorings", "StaticArrayInterface", "StaticArrays"] -git-tree-sha1 = "efecf0c4cc44e16251b0e718f08b0876b2a82b80" +git-tree-sha1 = "382a4bf7795eee0298221c37099db770be524bab" uuid = "4302a76b-040a-498a-8c04-15b101fed76b" -version = "1.10.0" +version = "1.10.1" [[deps.OrdinaryDiffEqExplicitRK]] deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "TruncatedStacktraces"] @@ -2540,10 +2531,10 @@ uuid = "9286f039-9fbf-40e8-bf65-aa933bdc4db0" version = "1.1.0" [[deps.OrdinaryDiffEqExponentialRK]] -deps = ["ADTypes", "DiffEqBase", "ExponentialUtilities", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqSDIRK", "OrdinaryDiffEqVerner", "RecursiveArrayTools", "Reexport", "SciMLBase"] -git-tree-sha1 = "8d2ab84d7fabdfde995e5f567361f238069497f5" +deps = ["ADTypes", "DiffEqBase", "ExponentialUtilities", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "RecursiveArrayTools", "Reexport", "SciMLBase"] +git-tree-sha1 = "585f73f10a1b444654d739853a9328d1bb7fce6b" uuid = "e0540318-69ee-4070-8777-9e2de6de23de" -version = "1.4.0" +version = "1.5.0" [[deps.OrdinaryDiffEqExtrapolation]] deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "FastPower", "LinearSolve", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "Polyester", "RecursiveArrayTools", "Reexport"] @@ -2553,9 +2544,9 @@ version = "1.5.0" [[deps.OrdinaryDiffEqFIRK]] deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "FastGaussQuadrature", "FastPower", "LinearAlgebra", "LinearSolve", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "Polyester", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators"] -git-tree-sha1 = "0da8ec3491821262a3d2828e6370e76b51a770a3" +git-tree-sha1 = "d7cbd84ba96a91e765fc20d2c3b3b1702c15eeed" uuid = "5960d6e9-dd7a-4743-88e7-cf307b64f125" -version = "1.12.0" +version = "1.13.0" [[deps.OrdinaryDiffEqFeagin]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "RecursiveArrayTools", "Reexport", "Static"] @@ -2565,21 +2556,21 @@ version = "1.1.0" [[deps.OrdinaryDiffEqFunctionMap]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] -git-tree-sha1 = "925a91583d1ab84f1f0fea121be1abf1179c5926" +git-tree-sha1 = "a4cb67794464352b69331c903cfa91a40e9a79ac" uuid = "d3585ca7-f5d3-4ba6-8057-292ed1abd90f" -version = "1.1.1" +version = "1.2.0" [[deps.OrdinaryDiffEqHighOrderRK]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "Static"] -git-tree-sha1 = "103e017ff186ac39d731904045781c9bacfca2b0" +git-tree-sha1 = "3466ac9ba5121c700a17e1d5ba42757405d636d4" uuid = "d28bc4f8-55e1-4f49-af69-84c1a99f0f58" -version = "1.1.0" +version = "1.2.0" [[deps.OrdinaryDiffEqIMEXMultistep]] deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "Reexport"] -git-tree-sha1 = "095bab73a3ff185e9ef971fc42ecc93c7824e589" +git-tree-sha1 = "f2e7decd8b8b92a13e9d48f87780fdfecbc85708" uuid = "9f002381-b378-40b7-97a6-27a27c83f129" -version = "1.3.0" +version = "1.4.0" [[deps.OrdinaryDiffEqLinear]] deps = ["DiffEqBase", "ExponentialUtilities", "LinearAlgebra", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators"] @@ -2589,9 +2580,9 @@ version = "1.3.0" [[deps.OrdinaryDiffEqLowOrderRK]] deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] -git-tree-sha1 = "d4bb32e09d6b68ce2eb45fb81001eab46f60717a" +git-tree-sha1 = "2b7a3ef765c5e3e9d8eee6031da143a0b1c0805c" uuid = "1344f307-1e59-4825-a18e-ace9aa3fa4c6" -version = "1.2.0" +version = "1.3.0" [[deps.OrdinaryDiffEqLowStorageRK]] deps = ["Adapt", "DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "Static", "StaticArrays"] @@ -2601,9 +2592,9 @@ version = "1.3.0" [[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 = "ffdb0f5207b0e30f8b1edf99b3b9546d9c48ccaf" +git-tree-sha1 = "e98aa2f8da8386bc26daeb7c9b161bc351ea6a77" uuid = "127b3ac7-2247-4354-8eb6-78cf4e7c58e8" -version = "1.10.0" +version = "1.11.0" [[deps.OrdinaryDiffEqNordsieck]] deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqTsit5", "Polyester", "RecursiveArrayTools", "Reexport", "Static"] @@ -2631,21 +2622,21 @@ version = "1.1.0" [[deps.OrdinaryDiffEqRKN]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "RecursiveArrayTools", "Reexport"] -git-tree-sha1 = "41c09d9c20877546490f907d8dffdd52690dd65f" +git-tree-sha1 = "6548bff67665b13a60abfb33e95fcf7ae08d186d" uuid = "af6ede74-add8-4cfd-b1df-9a4dbb109d7a" -version = "1.1.0" +version = "1.2.0" [[deps.OrdinaryDiffEqRosenbrock]] deps = ["ADTypes", "DiffEqBase", "DifferentiationInterface", "FastBroadcast", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "MacroTools", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "Static"] -git-tree-sha1 = "1ce0096d920e95773220e818f29bf4b37ea2bb78" +git-tree-sha1 = "a2f83c9b6e977c8dc5f37e0b448ad64f17c3a9c1" uuid = "43230ef6-c299-4910-a778-202eb28ce4ce" -version = "1.11.0" +version = "1.12.0" [[deps.OrdinaryDiffEqSDIRK]] deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "LinearAlgebra", "MacroTools", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "RecursiveArrayTools", "Reexport", "SciMLBase", "TruncatedStacktraces"] -git-tree-sha1 = "b3a7e3a2f355d837c823b435630f035aef446b45" +git-tree-sha1 = "62327171ae40737b7874d4bdf70e0a213d60086a" uuid = "2d112036-d095-4a1e-ab9a-08536f3ecdbf" -version = "1.3.0" +version = "1.4.0" [[deps.OrdinaryDiffEqSSPRK]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "Static", "StaticArrays"] @@ -2661,27 +2652,27 @@ version = "1.3.0" [[deps.OrdinaryDiffEqStabilizedRK]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "StaticArrays"] -git-tree-sha1 = "1b0d894c880e25f7d0b022d7257638cf8ce5b311" +git-tree-sha1 = "8b54bcaf8634548bd13c0bd9a0522f15e5438b67" uuid = "358294b1-0aab-51c3-aafe-ad5ab194a2ad" -version = "1.1.0" +version = "1.2.0" [[deps.OrdinaryDiffEqSymplecticRK]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "RecursiveArrayTools", "Reexport"] -git-tree-sha1 = "a13d59a2d6cfb6a3332a7782638ca6e1cb6ca688" +git-tree-sha1 = "0d3e0527149d7ece68850c51de67e99bc4477b1b" uuid = "fa646aed-7ef9-47eb-84c4-9443fc8cbfa8" -version = "1.3.0" +version = "1.4.0" [[deps.OrdinaryDiffEqTsit5]] deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "Static", "TruncatedStacktraces"] -git-tree-sha1 = "96552f7d4619fabab4038a29ed37dd55e9eb513a" +git-tree-sha1 = "d0b069075f4a5e54b29e412419e5a733a83e6240" uuid = "b1df2697-797e-41e3-8120-5422d3b24e4a" -version = "1.1.0" +version = "1.2.0" [[deps.OrdinaryDiffEqVerner]] deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "Static", "TruncatedStacktraces"] -git-tree-sha1 = "08f2d3be30874b6e2e937a06b501fb9811f7d8bd" +git-tree-sha1 = "91f0a004785791c8c538d34a67c19cf3f7776e85" uuid = "79d7bb75-1356-48c1-b8c0-6832512096c2" -version = "1.2.0" +version = "1.3.0" [[deps.PCRE2_jll]] deps = ["Artifacts", "Libdl"] @@ -2747,9 +2738,9 @@ version = "1.4.3" [[deps.Plots]] deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "TOML", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] -git-tree-sha1 = "55818b50883d7141bd98cdf5fc2f4ced96ee075f" +git-tree-sha1 = "3db9167c618b290a05d4345ca70de6d95304a32a" uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "1.40.16" +version = "1.40.17" [deps.Plots.extensions] FileIOExt = "FileIO" @@ -2797,9 +2788,9 @@ version = "0.2.4" [[deps.PreallocationTools]] deps = ["Adapt", "ArrayInterface", "ForwardDiff"] -git-tree-sha1 = "7a5e02659e293b25a4bfaeeb6cd268acd0742eba" +git-tree-sha1 = "2cc315bb7f6e4d59081bad744cdb911d6374fc7f" uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" -version = "0.4.28" +version = "0.4.29" weakdeps = ["ReverseDiff", "SparseConnectivityTracer"] [deps.PreallocationTools.extensions] @@ -2954,9 +2945,9 @@ version = "0.6.12" [[deps.RecursiveArrayTools]] deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "efc718978d97745c58e69c5115a35c51a080e45e" +git-tree-sha1 = "f8726bd5a8b7f5f5d3f6c0ce4793454a599b5243" uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "3.34.1" +version = "3.36.0" [deps.RecursiveArrayTools.extensions] RecursiveArrayToolsFastBroadcastExt = "FastBroadcast" @@ -3066,9 +3057,9 @@ version = "0.5.0" [[deps.SciMLBase]] deps = ["ADTypes", "Accessors", "Adapt", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "Moshi", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "SciMLStructures", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface"] -git-tree-sha1 = "e6a28a9a2dd9bc3ed46391fa0e6c35839bde4028" +git-tree-sha1 = "1c7fd50df465f0684f04f3a63736eac01999c659" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.103.0" +version = "2.107.0" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -3093,15 +3084,15 @@ version = "2.103.0" [[deps.SciMLJacobianOperators]] deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "ConstructionBase", "DifferentiationInterface", "FastClosures", "LinearAlgebra", "SciMLBase", "SciMLOperators"] -git-tree-sha1 = "7da1216346ad79499d08d7e2a3dbf297dc80c829" +git-tree-sha1 = "3414071e3458f3065de7fa5aed55283b236b4907" uuid = "19f34311-ddf3-4b8b-af20-060888a46c0e" -version = "0.1.6" +version = "0.1.8" [[deps.SciMLOperators]] deps = ["Accessors", "ArrayInterface", "DocStringExtensions", "LinearAlgebra", "MacroTools"] -git-tree-sha1 = "3249fe77f322fe539e935ecb388c8290cd38a3fc" +git-tree-sha1 = "7d3a1519dc4d433a6b20035eaff20bde8be77c66" uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" -version = "1.3.1" +version = "1.4.0" weakdeps = ["SparseArrays", "StaticArraysCore"] [deps.SciMLOperators.extensions] @@ -3110,9 +3101,9 @@ weakdeps = ["SparseArrays", "StaticArraysCore"] [[deps.SciMLSensitivity]] deps = ["ADTypes", "Accessors", "Adapt", "ArrayInterface", "ChainRulesCore", "DiffEqBase", "DiffEqCallbacks", "DiffEqNoiseProcess", "Distributions", "Enzyme", "FastBroadcast", "FiniteDiff", "ForwardDiff", "FunctionProperties", "FunctionWrappersWrappers", "Functors", "GPUArraysCore", "LinearAlgebra", "LinearSolve", "Markdown", "OrdinaryDiffEqCore", "PreallocationTools", "QuadGK", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "ReverseDiff", "SciMLBase", "SciMLJacobianOperators", "SciMLStructures", "StaticArrays", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tracker", "Zygote"] -git-tree-sha1 = "f4af350e4b1e7200a2143a4fb16362133f2ef288" +git-tree-sha1 = "a5d3e3ccedbce9c0c07b4ffa60787b58bdc6d360" uuid = "1ed8b502-d754-442c-8d5d-10ac956f44a1" -version = "7.87.0" +version = "7.88.0" weakdeps = ["Mooncake"] [deps.SciMLSensitivity.extensions] @@ -3131,9 +3122,9 @@ version = "3.0.0" [[deps.ScopedValues]] deps = ["HashArrayMappedTries", "Logging"] -git-tree-sha1 = "1147f140b4c8ddab224c94efa9569fc23d63ab44" +git-tree-sha1 = "7f44eef6b1d284465fafc66baf4d9bdcc239a15b" uuid = "7e506255-f358-4e82-b7e4-beb19740aa63" -version = "1.3.0" +version = "1.4.0" [[deps.Scratch]] deps = ["Dates"] @@ -3185,9 +3176,9 @@ version = "1.2.0" [[deps.SimpleNonlinearSolve]] deps = ["ADTypes", "ArrayInterface", "BracketingNonlinearSolve", "CommonSolve", "ConcreteStructs", "DifferentiationInterface", "FastClosures", "FiniteDiff", "ForwardDiff", "LineSearch", "LinearAlgebra", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase", "Setfield", "StaticArraysCore"] -git-tree-sha1 = "7aaa5fe4617271b64fce0466d187f2a72edbd81a" +git-tree-sha1 = "09d986e27a606f172c5b6cffbd8b8b2f10bf1c75" uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" -version = "2.5.0" +version = "2.7.0" weakdeps = ["ChainRulesCore", "DiffEqBase", "ReverseDiff", "Tracker"] [deps.SimpleNonlinearSolve.extensions] @@ -3224,24 +3215,17 @@ version = "1.11.0" [[deps.SparseConnectivityTracer]] deps = ["ADTypes", "DocStringExtensions", "FillArrays", "LinearAlgebra", "Random", "SparseArrays"] -git-tree-sha1 = "182990067a09adf950274f97f38f68c76f81d2d0" +git-tree-sha1 = "7bd2b8981cc57adcf5cf1add282aba2713a7058f" uuid = "9f842d2f-2579-4b1d-911e-f412cf18a3f5" -version = "0.6.21" +version = "1.0.0" +weakdeps = ["LogExpFunctions", "NNlib", "NaNMath", "SpecialFunctions"] [deps.SparseConnectivityTracer.extensions] - SparseConnectivityTracerDataInterpolationsExt = "DataInterpolations" SparseConnectivityTracerLogExpFunctionsExt = "LogExpFunctions" SparseConnectivityTracerNNlibExt = "NNlib" SparseConnectivityTracerNaNMathExt = "NaNMath" SparseConnectivityTracerSpecialFunctionsExt = "SpecialFunctions" - [deps.SparseConnectivityTracer.weakdeps] - DataInterpolations = "82cc6244-b520-54b8-b5a6-8a565e85f1d0" - LogExpFunctions = "2ab3a3ac-af41-5b50-aa03-7779005ae688" - NNlib = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" - NaNMath = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" - SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" - [[deps.SparseInverseSubset]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] git-tree-sha1 = "52962839426b75b3021296f7df242e40ecfc0852" @@ -3305,9 +3289,9 @@ weakdeps = ["OffsetArrays", "StaticArrays"] [[deps.StaticArrays]] deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] -git-tree-sha1 = "0feb6b9031bd5c51f9072393eb5ab3efd31bf9e4" +git-tree-sha1 = "cbea8a6bd7bed51b1619658dec70035e07b8502f" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.9.13" +version = "1.9.14" weakdeps = ["ChainRulesCore", "Statistics"] [deps.StaticArrays.extensions] @@ -3378,9 +3362,9 @@ version = "2.5.0" [[deps.StochasticDiffEq]] deps = ["ADTypes", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DiffEqNoiseProcess", "DocStringExtensions", "FastPower", "FiniteDiff", "ForwardDiff", "JumpProcesses", "LevyArea", "LinearAlgebra", "Logging", "MuladdMacro", "NLsolve", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SparseArrays", "StaticArrays", "UnPack"] -git-tree-sha1 = "2992af2739fdcf5862b12dcf53a5f6e3e4acd358" +git-tree-sha1 = "c3a55a2a1e180e249a0550d30a58c700487aa7ef" uuid = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0" -version = "6.80.0" +version = "6.81.0" [[deps.StrideArraysCore]] deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface", "ThreadingUtilities"] @@ -3460,9 +3444,9 @@ version = "5.2.3+0" [[deps.SymbolicIndexingInterface]] deps = ["Accessors", "ArrayInterface", "PrettyTables", "RuntimeGeneratedFunctions", "StaticArraysCore"] -git-tree-sha1 = "658f6d01bfe68d6bf47915bf5d868228138c7d71" +git-tree-sha1 = "59ca6eddaaa9849e7de9fd1153b6faf0b1db7b80" uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -version = "0.3.41" +version = "0.3.42" [[deps.TOML]] deps = ["Dates"] @@ -3529,9 +3513,9 @@ version = "0.5.5" [[deps.TimeZones]] deps = ["Artifacts", "Dates", "Downloads", "InlineStrings", "Mocking", "Printf", "Scratch", "TZJData", "Unicode", "p7zip_jll"] -git-tree-sha1 = "2c705e96825b66c4a3f25031a683c06518256dd3" +git-tree-sha1 = "1f9a3f379a2ce2a213a0f606895567a08a1a2d08" uuid = "f269a46b-ccf7-5d73-abea-4c690281aa53" -version = "1.21.3" +version = "1.22.0" weakdeps = ["RecipesBase"] [deps.TimeZones.extensions] @@ -3617,9 +3601,9 @@ version = "1.6.0" [[deps.Turing]] deps = ["ADTypes", "AbstractMCMC", "AbstractPPL", "Accessors", "AdvancedHMC", "AdvancedMH", "AdvancedPS", "AdvancedVI", "BangBang", "Bijectors", "Compat", "DataStructures", "Distributions", "DistributionsAD", "DocStringExtensions", "DynamicPPL", "EllipticalSliceSampling", "ForwardDiff", "Libtask", "LinearAlgebra", "LogDensityProblems", "MCMCChains", "NamedArrays", "Optimization", "OptimizationOptimJL", "OrderedCollections", "Printf", "Random", "Reexport", "SciMLBase", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] -git-tree-sha1 = "ed8145c83b824e67a94b5bbe5be231991deda154" +git-tree-sha1 = "3d7516378d649109b1cdced7662d2039e1376512" uuid = "fce5fe82-541a-59a6-adf8-730c64b5f9a0" -version = "0.39.4" +version = "0.39.8" weakdeps = ["DynamicHMC", "Optim"] [deps.Turing.extensions] @@ -3653,9 +3637,9 @@ version = "0.4.1" [[deps.Unitful]] deps = ["Dates", "LinearAlgebra", "Random"] -git-tree-sha1 = "d2282232f8a4d71f79e85dc4dd45e5b12a6297fb" +git-tree-sha1 = "6258d453843c466d84c17a58732dda5deeb8d3af" uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" -version = "1.23.1" +version = "1.24.0" weakdeps = ["ConstructionBase", "ForwardDiff", "InverseFunctions", "Printf"] [deps.Unitful.extensions] @@ -3704,9 +3688,9 @@ version = "1.4.2" [[deps.WeightInitializers]] deps = ["ArgCheck", "ConcreteStructs", "GPUArraysCore", "LinearAlgebra", "Random", "SpecialFunctions", "Statistics"] -git-tree-sha1 = "57db7a10930d4ccc9e4ee3d9122748f845e645cf" +git-tree-sha1 = "dd2e8eb0120c12eed3446cedee395ca7ac42a5db" uuid = "d49dbf32-c5c2-4618-8acc-27bb2598ef2d" -version = "1.1.3" +version = "1.1.4" [deps.WeightInitializers.extensions] WeightInitializersAMDGPUExt = ["AMDGPU", "GPUArrays"] @@ -3936,15 +3920,15 @@ version = "0.61.1+0" [[deps.libaom_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "522c1df09d05a71785765d19c9524661234738e9" +git-tree-sha1 = "4bba74fa59ab0755167ad24f98800fe5d727175b" uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" -version = "3.11.0+0" +version = "3.12.1+0" [[deps.libass_jll]] deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "e17c115d55c5fbb7e52ebedb427a0dca79d4484e" +git-tree-sha1 = "125eedcb0a4a0bba65b657251ce1d27c8714e9d6" uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" -version = "0.15.2+0" +version = "0.17.4+0" [[deps.libblastrampoline_jll]] deps = ["Artifacts", "Libdl"] @@ -4010,16 +3994,16 @@ uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" version = "17.4.0+2" [[deps.x264_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "14cc7083fc6dff3cc44f2bc435ee96d06ed79aa7" uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" -version = "2021.5.5+0" +version = "10164.0.1+0" [[deps.x265_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e7b67590c14d487e734dcb925924c5dc43ec85f3" uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" -version = "3.5.0+0" +version = "4.1.0+0" [[deps.xkbcommon_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] From 172ce48b6228250e6b10d1f93086a5a42defb6f9 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Fri, 1 Aug 2025 00:05:25 +0100 Subject: [PATCH 4/5] Explain docs in more detail --- usage/external-samplers/index.qmd | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/usage/external-samplers/index.qmd b/usage/external-samplers/index.qmd index acffd8a41..11fa51878 100755 --- a/usage/external-samplers/index.qmd +++ b/usage/external-samplers/index.qmd @@ -90,11 +90,11 @@ Note that although this library is hosted under the TuringLang GitHub organisati In this section, we will briefly go through the interface requirements for external samplers. First and foremost, the sampler `T` should be a subtype of `AbstractMCMC.AbstractSampler`. -Second, the stepping function of the MCMC algorithm must be made defined using `AbstractMCMC.step` and follow the structure below: +Second, the stepping function of the MCMC algorithm must be defined as new methods of `AbstractMCMC.step` following the structure below: ```julia # First step -function AbstractMCMC.step{T<:AbstractMCMC.AbstractSampler}( +function AbstractMCMC.step( rng::Random.AbstractRNG, model::AbstractMCMC.LogDensityModel, spl::T; @@ -105,7 +105,7 @@ function AbstractMCMC.step{T<:AbstractMCMC.AbstractSampler}( end # N+1 step -function AbstractMCMC.step{T<:AbstractMCMC.AbstractSampler}( +function AbstractMCMC.step( rng::Random.AbstractRNG, model::AbstractMCMC.LogDensityModel, sampler::T, @@ -117,19 +117,20 @@ function AbstractMCMC.step{T<:AbstractMCMC.AbstractSampler}( end ``` -There are several characteristics to note in these functions: +Note that the `model` argument here must be [an `AbstractMCMC.LogDensityModel`](https://turinglang.org/AbstractMCMC.jl/stable/api/#AbstractMCMC.LogDensityModel). +This is a thin wrapper around an object which satisfies the `LogDensityProblems.jl` interface. +Thus, in your external sampler, you can access the inner object with `model.logdensity` and call `LogDensityProblems.logdensity(model.logdensity, params)` to calculate the (unnormalised) log density of the model at `params`. -- There must be two `step` functions: +As shown above, there must be two `step` methods: - + A function that performs the first step and initializes the sampler. - + A function that performs the following steps and takes an extra input, `state`, which carries the initialization information. + - A method that performs the first step, performing any initialisation it needs to; and + - A method that performs the following steps and takes an extra input, `state`, which carries the initialization information. -- The functions must follow the displayed signatures. -- The output of the functions must be a tuple containing: - + a 'transition', which is essentially the 'visible output' of the sampler: this object is later used to construct an `MCMCChains.Chains`; - + a 'state', representing the current state of the sampler, which is passed to the next step of the MCMC algorithm. +The output of both of these methods must be a tuple containing: + - a 'transition', which is essentially the 'visible output' of the sampler: this object is later used to construct an `MCMCChains.Chains`; + - a 'state', representing the current state of the sampler, which is passed to the next step of the MCMC algorithm. -On top of this, your sampler state should also implement `AbstractMCMC.getparams`: +Apart from this, your sampler state should also implement `AbstractMCMC.getparams`: ```julia function AbstractMCMC.getparams(model::DynamicPPL.Model, spl::T) @@ -137,10 +138,13 @@ function AbstractMCMC.getparams(model::DynamicPPL.Model, spl::T) end ``` -It is possible that `getparams` can be implemented without using the model, in which case you can just define `getparams(::Any, spl::T)`. +It is quite possible that `getparams` can be implemented without needing to use the model, in which case you can just define `getparams(::Any, spl::T)`. These functions are the bare minimum that your external sampler must implement to work with Turing models. There are other methods which can be overloaded to improve the performance or other features of the sampler; please refer to the documentation linked above for more details. +In general, we recommend that the `AbstractMCMC` interface is implemented directly in your library. +However, any DynamicPPL- or Turing-specific functionality is best implemented in a `MySamplerTuringExt` extension. + [^1]: Xu et al., [AdvancedHMC.jl: A robust, modular and efficient implementation of advanced HMC algorithms](http://proceedings.mlr.press/v118/xu20a/xu20a.pdf), 2019 [^2]: Zhang et al., [Pathfinder: Parallel quasi-Newton variational inference](https://arxiv.org/abs/2108.03782), 2021 From 6109b0cf347426542eff4426ab5dd7dfeab0f101 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Fri, 1 Aug 2025 13:48:08 +0100 Subject: [PATCH 5/5] Bump to 0.39.9 --- Manifest.toml | 8 ++++---- usage/external-samplers/index.qmd | 13 ++++++------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index bda9a3d4c..c94baf232 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -2428,9 +2428,9 @@ version = "0.4.6" [[deps.Optimization]] deps = ["ADTypes", "ArrayInterface", "ConsoleProgressMonitor", "DocStringExtensions", "LBFGSB", "LinearAlgebra", "Logging", "LoggingExtras", "OptimizationBase", "Printf", "ProgressLogging", "Reexport", "SciMLBase", "SparseArrays", "TerminalLoggers"] -git-tree-sha1 = "c385fdca85f0d6f2f6ade194b4236eaad621e77d" +git-tree-sha1 = "41902230755effe29a8599ea4b61dc3ffc2c952d" uuid = "7f7a1694-90dd-40f0-9382-eb1efda571ba" -version = "4.4.0" +version = "4.5.0" [[deps.OptimizationBase]] deps = ["ADTypes", "ArrayInterface", "DifferentiationInterface", "DocStringExtensions", "FastClosures", "LinearAlgebra", "PDMats", "Reexport", "Requires", "SciMLBase", "SparseArrays", "SparseConnectivityTracer", "SparseMatrixColorings"] @@ -3601,9 +3601,9 @@ version = "1.6.0" [[deps.Turing]] deps = ["ADTypes", "AbstractMCMC", "AbstractPPL", "Accessors", "AdvancedHMC", "AdvancedMH", "AdvancedPS", "AdvancedVI", "BangBang", "Bijectors", "Compat", "DataStructures", "Distributions", "DistributionsAD", "DocStringExtensions", "DynamicPPL", "EllipticalSliceSampling", "ForwardDiff", "Libtask", "LinearAlgebra", "LogDensityProblems", "MCMCChains", "NamedArrays", "Optimization", "OptimizationOptimJL", "OrderedCollections", "Printf", "Random", "Reexport", "SciMLBase", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] -git-tree-sha1 = "3d7516378d649109b1cdced7662d2039e1376512" +git-tree-sha1 = "3fd5118fd33c708bec35d892f86a5455e9402d66" uuid = "fce5fe82-541a-59a6-adf8-730c64b5f9a0" -version = "0.39.8" +version = "0.39.9" weakdeps = ["DynamicHMC", "Optim"] [deps.Turing.extensions] diff --git a/usage/external-samplers/index.qmd b/usage/external-samplers/index.qmd index 11fa51878..3e278b40e 100755 --- a/usage/external-samplers/index.qmd +++ b/usage/external-samplers/index.qmd @@ -89,7 +89,7 @@ For an example of an 'external sampler' that works in this way with Turing, we r Note that although this library is hosted under the TuringLang GitHub organisation, it is not a Turing.jl dependency, and thus from Turing's perspective it is truly an 'external' sampler. In this section, we will briefly go through the interface requirements for external samplers. -First and foremost, the sampler `T` should be a subtype of `AbstractMCMC.AbstractSampler`. +First and foremost, the sampler `MySampler` should be a subtype of `AbstractMCMC.AbstractSampler`. Second, the stepping function of the MCMC algorithm must be defined as new methods of `AbstractMCMC.step` following the structure below: ```julia @@ -97,7 +97,7 @@ Second, the stepping function of the MCMC algorithm must be defined as new metho function AbstractMCMC.step( rng::Random.AbstractRNG, model::AbstractMCMC.LogDensityModel, - spl::T; + spl::MySampler; kwargs..., ) [...] @@ -108,7 +108,7 @@ end function AbstractMCMC.step( rng::Random.AbstractRNG, model::AbstractMCMC.LogDensityModel, - sampler::T, + sampler::MySampler, state; kwargs..., ) @@ -130,16 +130,15 @@ The output of both of these methods must be a tuple containing: - a 'transition', which is essentially the 'visible output' of the sampler: this object is later used to construct an `MCMCChains.Chains`; - a 'state', representing the current state of the sampler, which is passed to the next step of the MCMC algorithm. -Apart from this, your sampler state should also implement `AbstractMCMC.getparams`: +Apart from this, your sampler state should also implement `Turing.Inference.getparams(model, transition)` to return the parameters of the model as a vector. +Here, `transition` represents the first output of the `step` function. ```julia -function AbstractMCMC.getparams(model::DynamicPPL.Model, spl::T) +function Turing.Inference.getparams(model::DynamicPPL.Model, state::MyTransition) # Return a vector containing the parameters of the model. end ``` -It is quite possible that `getparams` can be implemented without needing to use the model, in which case you can just define `getparams(::Any, spl::T)`. - These functions are the bare minimum that your external sampler must implement to work with Turing models. There are other methods which can be overloaded to improve the performance or other features of the sampler; please refer to the documentation linked above for more details.