Skip to content

Commit 1710979

Browse files
Merge pull request #1124 from SciML/ap/sdifftools
refactor: cleanup deps and replace SparseDiffTools with SciMLJacobianOperators
2 parents e41bb3b + 84467ed commit 1710979

24 files changed

+389
-398
lines changed

Project.toml

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "SciMLSensitivity"
22
uuid = "1ed8b502-d754-442c-8d5d-10ac956f44a1"
33
authors = ["Christopher Rackauckas <[email protected]>", "Yingbo Ma <[email protected]>"]
4-
version = "7.68.0"
4+
version = "7.69.0"
55

66
[deps]
77
ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b"
@@ -13,8 +13,8 @@ DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e"
1313
DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def"
1414
DiffEqNoiseProcess = "77a26b50-5914-5dd7-bc55-306e6241c503"
1515
Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f"
16-
EllipsisNotation = "da5c29d0-fa7d-589e-88eb-ea29b0a81949"
1716
Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9"
17+
FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898"
1818
FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41"
1919
ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
2020
FunctionProperties = "f62d2435-5019-4c03-9749-2d4c77af0cbc"
@@ -24,7 +24,6 @@ GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527"
2424
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
2525
LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae"
2626
Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a"
27-
Parameters = "d96e819e-fc66-5662-9728-84c9c7592b0a"
2827
PreallocationTools = "d236fae5-4411-538c-8e31-a6e3d9e00b46"
2928
QuadGK = "1fd47b50-473d-5c70-9696-f719f8f3bcdc"
3029
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
@@ -33,19 +32,18 @@ RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd"
3332
Reexport = "189a3867-3050-52da-a836-e630ba90ab69"
3433
ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267"
3534
SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
35+
SciMLJacobianOperators = "19f34311-ddf3-4b8b-af20-060888a46c0e"
3636
SciMLOperators = "c0aeaf25-5076-4817-a8d5-81caf7dfa961"
3737
SciMLStructures = "53ae85a6-f571-4167-b2af-e1d143709226"
38-
SparseDiffTools = "47a9eef4-7e08-11e9-0b38-333d64bd3804"
3938
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
4039
StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c"
4140
Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
4241
SymbolicIndexingInterface = "2efcf032-c050-4f8e-a9bb-153293bab1f5"
4342
Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c"
44-
TruncatedStacktraces = "781d530d-4396-4725-bb49-402e4bee1e77"
4543
Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f"
4644

4745
[compat]
48-
ADTypes = "0.1, 0.2, 1"
46+
ADTypes = "1.9"
4947
Accessors = "0.1.36"
5048
Adapt = "1.0, 2.0, 3.0, 4"
5149
AlgebraicMultigrid = "0.6.0"
@@ -56,12 +54,12 @@ ChainRulesCore = "0.10.7, 1"
5654
ComponentArrays = "0.15.5"
5755
DelayDiffEq = "5.43.2"
5856
DiffEqBase = "6.151.1"
59-
DiffEqCallbacks = "3.3"
57+
DiffEqCallbacks = "4"
6058
DiffEqNoiseProcess = "5.19"
6159
Distributed = "1"
6260
Distributions = "0.25"
63-
EllipsisNotation = "1"
64-
Enzyme = "0.12, 0.13"
61+
Enzyme = "0.13"
62+
FastBroadcast = "0.3.5"
6563
FiniteDiff = "2"
6664
ForwardDiff = "0.10"
6765
FunctionProperties = "0.1"
@@ -70,15 +68,14 @@ Functors = "0.4"
7068
GPUArraysCore = "0.1"
7169
LinearAlgebra = "1.10"
7270
LinearSolve = "2"
73-
Lux = "0.5.51"
71+
Lux = "1"
7472
Markdown = "1.10"
75-
ModelingToolkit = "9"
73+
ModelingToolkit = "9.42"
7674
NLsolve = "4.5.1"
7775
NonlinearSolve = "3.0.1"
78-
Optimization = "3.19.3"
79-
OptimizationOptimisers = "0.1.6"
76+
Optimization = "4"
77+
OptimizationOptimisers = "0.3"
8078
OrdinaryDiffEq = "6.81.1"
81-
Parameters = "0.12"
8279
Pkg = "1.10"
8380
PreallocationTools = "0.4.4"
8481
QuadGK = "2.9.1"
@@ -89,10 +86,10 @@ Reexport = "1.0"
8986
ReverseDiff = "1.15.1"
9087
SafeTestsets = "0.1.0"
9188
SciMLBase = "2.51.4"
89+
SciMLJacobianOperators = "0.1"
9290
SciMLOperators = "0.3"
9391
SciMLStructures = "1.3"
9492
SparseArrays = "1.10"
95-
SparseDiffTools = "2.5"
9693
StaticArrays = "1.8.0"
9794
StaticArraysCore = "1.4"
9895
Statistics = "1.10"
@@ -101,7 +98,6 @@ StochasticDiffEq = "6.69"
10198
SymbolicIndexingInterface = "0.3.26"
10299
Test = "1.10"
103100
Tracker = "0.2.30"
104-
TruncatedStacktraces = "1.2"
105101
Zygote = "0.6.67"
106102
julia = "1.10"
107103

docs/Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ Enzyme = "0.12, 0.13"
4545
Flux = "0.14"
4646
ForwardDiff = "0.10"
4747
IterTools = "1"
48-
Lux = "0.5.7, 1"
48+
Lux = "1"
4949
LuxCUDA = "0.3"
5050
Optimization = "3.9, 4"
5151
OptimizationOptimJL = "0.2, 0.3, 0.4"

docs/src/examples/ode/second_order_neural.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ t = range(tspan[1], tspan[2], length = 20)
3333
model = Chain(Dense(2, 50, tanh), Dense(50, 2))
3434
ps, st = Lux.setup(Random.default_rng(), model)
3535
ps = ComponentArray(ps)
36-
model = Lux.Experimental.StatefulLuxLayer(model, ps, st)
36+
model = StatefulLuxLayer{true}(model, ps, st)
3737
3838
ff(du, u, p, t) = model(u, p)
3939
prob = SecondOrderODEProblem{false}(ff, du0, u0, tspan, ps)

src/SciMLSensitivity.jl

Lines changed: 52 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,64 @@
11
module SciMLSensitivity
22

3-
using DiffEqBase, ForwardDiff, Tracker, FiniteDiff, Statistics
4-
using DiffEqCallbacks, QuadGK, RecursiveArrayTools, LinearAlgebra
5-
import SciMLBase: AbstractNonlinearProblem
6-
using Adapt
7-
using LinearSolve
8-
using Parameters: @unpack
9-
import Accessors: @reset
10-
import DiffEqNoiseProcess
11-
import RandomNumbers: Xorshifts
12-
using Random
13-
import Zygote, ReverseDiff
14-
import ArrayInterface
15-
import Enzyme
16-
import GPUArraysCore
17-
using ADTypes
18-
using SparseDiffTools
19-
using SciMLOperators
20-
using Functors
21-
import TruncatedStacktraces
22-
import SciMLStructures
23-
import PreallocationTools: dualcache, get_tmp, DiffCache, LazyBufferCache,
24-
FixedSizeDiffCache
25-
import FunctionWrappersWrappers
26-
using EllipsisNotation
3+
using ADTypes: ADTypes, AutoEnzyme, AutoFiniteDiff, AutoForwardDiff,
4+
AutoReverseDiff, AutoTracker, AutoZygote
5+
using Accessors: @reset
6+
using Adapt: Adapt, adapt
7+
using ArrayInterface: ArrayInterface
8+
using DiffEqBase: DiffEqBase, SensitivityADPassThrough
9+
using DiffEqCallbacks: DiffEqCallbacks, IntegrandValuesSum,
10+
IntegratingSumCallback, PresetTimeCallback
11+
using DiffEqNoiseProcess: DiffEqNoiseProcess
12+
using FastBroadcast: @..
13+
using Functors: Functors, fmap
2714
using FunctionProperties: hasbranching
15+
using FunctionWrappersWrappers: FunctionWrappersWrappers
16+
using GPUArraysCore: GPUArraysCore
17+
using LinearSolve: LinearSolve
18+
using PreallocationTools: PreallocationTools, dualcache, get_tmp, DiffCache,
19+
FixedSizeDiffCache
20+
using RandomNumbers: Xorshifts
21+
using RecursiveArrayTools: RecursiveArrayTools, AbstractDiffEqArray,
22+
AbstractVectorOfArray, ArrayPartition, DiffEqArray,
23+
VectorOfArray
24+
using SciMLJacobianOperators: VecJacOperator, StatefulJacobianOperator
25+
using SciMLStructures: SciMLStructures, canonicalize, Tunable, isscimlstructure
26+
using SymbolicIndexingInterface: SymbolicIndexingInterface, current_time, getu,
27+
parameter_values, state_values
28+
using QuadGK: quadgk
29+
using SciMLBase: SciMLBase, AbstractOverloadingSensitivityAlgorithm,
30+
AbstractForwardSensitivityAlgorithm, AbstractAdjointSensitivityAlgorithm,
31+
AbstractSecondOrderSensitivityAlgorithm,
32+
AbstractShadowingSensitivityAlgorithm, AbstractTimeseriesSolution,
33+
AbstractNonlinearProblem, AbstractSensitivityAlgorithm,
34+
AbstractDiffEqFunction, AbstractODEFunction, unwrapped_f, CallbackSet,
35+
ContinuousCallback, DESolution, NonlinearFunction, NonlinearProblem,
36+
DiscreteCallback, LinearProblem, ODEFunction, ODEProblem,
37+
RODEFunction, RODEProblem, ReturnCode, SDEFunction,
38+
SDEProblem, VectorContinuousCallback, deleteat!,
39+
get_tmp_cache, has_adjoint, isinplace, reinit!, remake,
40+
solve, u_modified!
2841

29-
using SymbolicIndexingInterface
30-
using SciMLStructures: canonicalize, Tunable, isscimlstructure
42+
# AD Backends
43+
using ChainRulesCore: unthunk, @thunk, NoTangent, @not_implemented, Tangent, ZeroTangent
44+
using Enzyme: Enzyme
45+
using FiniteDiff: FiniteDiff
46+
using ForwardDiff: ForwardDiff
47+
using Tracker: Tracker, TrackedArray
48+
using ReverseDiff: ReverseDiff
49+
using Zygote: Zygote
3150

32-
using Markdown
51+
# Std Libs
52+
using LinearAlgebra: LinearAlgebra, Diagonal, I, UniformScaling, adjoint, axpy!,
53+
convert, copyto!, dot, issuccess, ldiv!, lu, lu!, mul!,
54+
norm, normalize!, qr, transpose
55+
using Markdown: Markdown, @doc_str
56+
using Random: Random, rand!
57+
using Statistics: Statistics, mean
3358

34-
using Reexport
35-
import ChainRulesCore: unthunk, @thunk, NoTangent, @not_implemented, Tangent, ZeroTangent
3659
abstract type SensitivityFunction end
3760
abstract type TransformedFunction end
3861

39-
import SciMLBase: unwrapped_f, _unwrap_val
40-
41-
import SciMLBase: AbstractOverloadingSensitivityAlgorithm, AbstractSensitivityAlgorithm,
42-
AbstractForwardSensitivityAlgorithm, AbstractAdjointSensitivityAlgorithm,
43-
AbstractSecondOrderSensitivityAlgorithm,
44-
AbstractShadowingSensitivityAlgorithm,
45-
AbstractTimeseriesSolution
46-
4762
include("utils.jl")
4863
include("parameters_handling.jl")
4964
include("sensitivity_algorithms.jl")

0 commit comments

Comments
 (0)