Skip to content

Commit 139e5ce

Browse files
Merge pull request #506 from SciML/sparsity
separate sparsity and jac_prototype types
2 parents e296fab + 80ee79f commit 139e5ce

File tree

2 files changed

+39
-38
lines changed

2 files changed

+39
-38
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "DiffEqBase"
22
uuid = "2b5f629d-d688-5b77-993f-72d75c75574e"
33
authors = ["Chris Rackauckas <[email protected]>"]
4-
version = "6.32.2"
4+
version = "6.33.0"
55

66
[deps]
77
ArrayInterface = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9"

src/diffeqfunction.jl

Lines changed: 38 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ abstract type AbstractODEFunction{iip} <: AbstractDiffEqFunction{iip} end
1818
"""
1919
$(TYPEDEF)
2020
"""
21-
struct ODEFunction{iip,F,TMM,Ta,Tt,TJ,JVP,VJP,JP,TW,TWt,TPJ,S,TCV} <: AbstractODEFunction{iip}
21+
struct ODEFunction{iip,F,TMM,Ta,Tt,TJ,JVP,VJP,JP,SP,TW,TWt,TPJ,S,TCV} <: AbstractODEFunction{iip}
2222
f::F
2323
mass_matrix::TMM
2424
analytic::Ta
@@ -27,7 +27,7 @@ struct ODEFunction{iip,F,TMM,Ta,Tt,TJ,JVP,VJP,JP,TW,TWt,TPJ,S,TCV} <: AbstractOD
2727
jvp::JVP
2828
vjp::VJP
2929
jac_prototype::JP
30-
sparsity::JP
30+
sparsity::SP
3131
Wfact::TW
3232
Wfact_t::TWt
3333
paramjac::TPJ
@@ -38,7 +38,7 @@ end
3838
"""
3939
$(TYPEDEF)
4040
"""
41-
struct SplitFunction{iip,F1,F2,TMM,C,Ta,Tt,TJ,JVP,VJP,JP,TW,TWt,TPJ,S,TCV} <: AbstractODEFunction{iip}
41+
struct SplitFunction{iip,F1,F2,TMM,C,Ta,Tt,TJ,JVP,VJP,JP,SP,TW,TWt,TPJ,S,TCV} <: AbstractODEFunction{iip}
4242
f1::F1
4343
f2::F2
4444
mass_matrix::TMM
@@ -49,7 +49,7 @@ struct SplitFunction{iip,F1,F2,TMM,C,Ta,Tt,TJ,JVP,VJP,JP,TW,TWt,TPJ,S,TCV} <: Ab
4949
jvp::JVP
5050
vjp::VJP
5151
jac_prototype::JP
52-
sparsity::JP
52+
sparsity::SP
5353
Wfact::TW
5454
Wfact_t::TWt
5555
paramjac::TPJ
@@ -60,7 +60,7 @@ end
6060
"""
6161
$(TYPEDEF)
6262
"""
63-
struct DynamicalODEFunction{iip,F1,F2,TMM,Ta,Tt,TJ,JVP,VJP,JP,TW,TWt,TPJ,S,TCV} <: AbstractODEFunction{iip}
63+
struct DynamicalODEFunction{iip,F1,F2,TMM,Ta,Tt,TJ,JVP,VJP,JP,SP,TW,TWt,TPJ,S,TCV} <: AbstractODEFunction{iip}
6464
f1::F1
6565
f2::F2
6666
mass_matrix::TMM
@@ -70,7 +70,7 @@ struct DynamicalODEFunction{iip,F1,F2,TMM,Ta,Tt,TJ,JVP,VJP,JP,TW,TWt,TPJ,S,TCV}
7070
jvp::JVP
7171
vjp::VJP
7272
jac_prototype::JP
73-
sparsity::JP
73+
sparsity::SP
7474
Wfact::TW
7575
Wfact_t::TWt
7676
paramjac::TPJ
@@ -86,7 +86,7 @@ abstract type AbstractDDEFunction{iip} <: AbstractDiffEqFunction{iip} end
8686
"""
8787
$(TYPEDEF)
8888
"""
89-
struct DDEFunction{iip,F,TMM,Ta,Tt,TJ,JVP,VJP,JP,TW,TWt,TPJ,S,TCV} <: AbstractDDEFunction{iip}
89+
struct DDEFunction{iip,F,TMM,Ta,Tt,TJ,JVP,VJP,JP,SP,TW,TWt,TPJ,S,TCV} <: AbstractDDEFunction{iip}
9090
f::F
9191
mass_matrix::TMM
9292
analytic::Ta
@@ -95,7 +95,7 @@ struct DDEFunction{iip,F,TMM,Ta,Tt,TJ,JVP,VJP,JP,TW,TWt,TPJ,S,TCV} <: AbstractDD
9595
jvp::JVP
9696
vjp::VJP
9797
jac_prototype::JP
98-
sparsity::JP
98+
sparsity::SP
9999
Wfact::TW
100100
Wfact_t::TWt
101101
paramjac::TPJ
@@ -125,7 +125,7 @@ abstract type AbstractSDEFunction{iip} <: AbstractDiffEqFunction{iip} end
125125
"""
126126
$(TYPEDEF)
127127
"""
128-
struct SDEFunction{iip,F,G,TMM,Ta,Tt,TJ,JVP,VJP,JP,TW,TWt,TPJ,S,GG,TCV} <: AbstractSDEFunction{iip}
128+
struct SDEFunction{iip,F,G,TMM,Ta,Tt,TJ,JVP,VJP,JP,SP,TW,TWt,TPJ,S,GG,TCV} <: AbstractSDEFunction{iip}
129129
f::F
130130
g::G
131131
mass_matrix::TMM
@@ -135,7 +135,7 @@ struct SDEFunction{iip,F,G,TMM,Ta,Tt,TJ,JVP,VJP,JP,TW,TWt,TPJ,S,GG,TCV} <: Abstr
135135
jvp::JVP
136136
vjp::VJP
137137
jac_prototype::JP
138-
sparsity::JP
138+
sparsity::SP
139139
Wfact::TW
140140
Wfact_t::TWt
141141
paramjac::TPJ
@@ -147,7 +147,7 @@ end
147147
"""
148148
$(TYPEDEF)
149149
"""
150-
struct SplitSDEFunction{iip,F1,F2,G,TMM,C,Ta,Tt,TJ,JVP,VJP,JP,TW,TWt,TPJ,S,TCV} <: AbstractSDEFunction{iip}
150+
struct SplitSDEFunction{iip,F1,F2,G,TMM,C,Ta,Tt,TJ,JVP,VJP,JP,SP,TW,TWt,TPJ,S,TCV} <: AbstractSDEFunction{iip}
151151
f1::F1
152152
f2::F2
153153
g::G
@@ -159,7 +159,7 @@ struct SplitSDEFunction{iip,F1,F2,G,TMM,C,Ta,Tt,TJ,JVP,VJP,JP,TW,TWt,TPJ,S,TCV}
159159
jvp::JVP
160160
vjp::VJP
161161
jac_prototype::JP
162-
sparsity::JP
162+
sparsity::SP
163163
Wfact::TW
164164
Wfact_t::TWt
165165
paramjac::TPJ
@@ -175,7 +175,7 @@ abstract type AbstractRODEFunction{iip} <: AbstractDiffEqFunction{iip} end
175175
"""
176176
$(TYPEDEF)
177177
"""
178-
struct RODEFunction{iip,F,TMM,Ta,Tt,TJ,JVP,VJP,JP,TW,TWt,TPJ,S,TCV} <: AbstractRODEFunction{iip}
178+
struct RODEFunction{iip,F,TMM,Ta,Tt,TJ,JVP,VJP,JP,SP,TW,TWt,TPJ,S,TCV} <: AbstractRODEFunction{iip}
179179
f::F
180180
mass_matrix::TMM
181181
analytic::Ta
@@ -184,7 +184,7 @@ struct RODEFunction{iip,F,TMM,Ta,Tt,TJ,JVP,VJP,JP,TW,TWt,TPJ,S,TCV} <: AbstractR
184184
jvp::JVP
185185
vjp::VJP
186186
jac_prototype::JP
187-
sparsity::JP
187+
sparsity::SP
188188
Wfact::TW
189189
Wfact_t::TWt
190190
paramjac::TPJ
@@ -200,15 +200,15 @@ abstract type AbstractDAEFunction{iip} <: AbstractDiffEqFunction{iip} end
200200
"""
201201
$(TYPEDEF)
202202
"""
203-
struct DAEFunction{iip,F,Ta,Tt,TJ,JVP,VJP,JP,TW,TWt,TPJ,S,TCV} <: AbstractDAEFunction{iip}
203+
struct DAEFunction{iip,F,Ta,Tt,TJ,JVP,VJP,JP,SP,TW,TWt,TPJ,S,TCV} <: AbstractDAEFunction{iip}
204204
f::F
205205
analytic::Ta
206206
tgrad::Tt
207207
jac::TJ
208208
jvp::JVP
209209
vjp::VJP
210210
jac_prototype::JP
211-
sparsity::JP
211+
sparsity::SP
212212
Wfact::TW
213213
Wfact_t::TWt
214214
paramjac::TPJ
@@ -225,7 +225,7 @@ abstract type AbstractSDDEFunction{iip} <: AbstractDiffEqFunction{iip} end
225225
"""
226226
$(TYPEDEF)
227227
"""
228-
struct SDDEFunction{iip,F,G,TMM,Ta,Tt,TJ,JVP,VJP,JP,TW,TWt,TPJ,S,GG,TCV} <: AbstractSDDEFunction{iip}
228+
struct SDDEFunction{iip,F,G,TMM,Ta,Tt,TJ,JVP,VJP,JP,SP,TW,TWt,TPJ,S,GG,TCV} <: AbstractSDDEFunction{iip}
229229
f::F
230230
g::G
231231
mass_matrix::TMM
@@ -235,7 +235,7 @@ struct SDDEFunction{iip,F,G,TMM,Ta,Tt,TJ,JVP,VJP,JP,TW,TWt,TPJ,S,GG,TCV} <: Abst
235235
jvp::JVP
236236
vjp::VJP
237237
jac_prototype::JP
238-
sparsity::JP
238+
sparsity::SP
239239
Wfact::TW
240240
Wfact_t::TWt
241241
paramjac::TPJ
@@ -345,7 +345,8 @@ function ODEFunction{iip,true}(f;
345345
end
346346

347347
ODEFunction{iip,typeof(f),typeof(mass_matrix),typeof(analytic),typeof(tgrad),
348-
typeof(jac),typeof(jvp),typeof(vjp),typeof(jac_prototype),typeof(Wfact),typeof(Wfact_t),
348+
typeof(jac),typeof(jvp),typeof(vjp),typeof(jac_prototype),typeof(sparsity),
349+
typeof(Wfact),typeof(Wfact_t),
349350
typeof(paramjac),typeof(syms),typeof(_colorvec)}(
350351
f,mass_matrix,analytic,tgrad,jac,jvp,vjp,jac_prototype,sparsity,Wfact,Wfact_t,
351352
paramjac,syms,_colorvec)
@@ -380,7 +381,7 @@ function ODEFunction{iip,false}(f;
380381
end
381382

382383
ODEFunction{iip,Any,Any,Any,Any,
383-
Any,Any,Any,Any,
384+
Any,Any,Any,Any,Any,
384385
Any,typeof(syms),typeof(_colorvec)}(
385386
f,mass_matrix,analytic,tgrad,jac,jvp,vjp,jac_prototype,sparsity,Wfact,Wfact_t,
386387
paramjac,syms,_colorvec)
@@ -397,7 +398,7 @@ ODEFunction(f::ODEFunction; kwargs...) = f
397398
f2 = ODEFunction(f2)
398399
SplitFunction{isinplace(f2),typeof(f1),typeof(f2),typeof(mass_matrix),
399400
typeof(cache),typeof(analytic),typeof(tgrad),typeof(jac),typeof(jvp),typeof(vjp),
400-
typeof(jac_prototype),
401+
typeof(jac_prototype),typeof(sparsity),
401402
typeof(Wfact),typeof(Wfact_t),typeof(paramjac),typeof(syms),
402403
typeof(colorvec)}(f1,f2,mass_matrix,cache,analytic,tgrad,jac,jvp,vjp,
403404
jac_prototype,sparsity,Wfact,Wfact_t,paramjac,syms,colorvec)
@@ -418,7 +419,7 @@ function SplitFunction{iip,true}(f1,f2;
418419
colorvec = nothing) where iip
419420
SplitFunction{iip,typeof(f1),typeof(f2),typeof(mass_matrix),
420421
typeof(_func_cache),typeof(analytic),
421-
typeof(tgrad),typeof(jac),typeof(jvp),typeof(vjp),typeof(jac_prototype),
422+
typeof(tgrad),typeof(jac),typeof(jvp),typeof(vjp),typeof(jac_prototype),typeof(sparsity),
422423
typeof(Wfact),typeof(Wfact_t),typeof(paramjac),typeof(syms),
423424
typeof(colorvec)}(
424425
f1,f2,mass_matrix,_func_cache,analytic,tgrad,jac,jvp,vjp,jac_prototype,
@@ -437,7 +438,7 @@ function SplitFunction{iip,false}(f1,f2; mass_matrix=I,
437438
paramjac = nothing,
438439
syms = nothing,
439440
colorvec = nothing) where iip
440-
SplitFunction{iip,Any,Any,Any,Any,Any,Any,Any,
441+
SplitFunction{iip,Any,Any,Any,Any,Any,Any,Any,Any,
441442
Any,Any,Any,Any,Any}(
442443
f1,f2,mass_matrix,_func_cache,analytic,tgrad,jac,jvp,vjp,jac_prototype,
443444
sparsity,Wfact,Wfact_t,paramjac,syms,colorvec)
@@ -475,7 +476,7 @@ function DynamicalODEFunction{iip,true}(f1,f2;mass_matrix=(I,I),
475476
colorvec = nothing) where iip
476477
DynamicalODEFunction{iip,typeof(f1),typeof(f2),typeof(mass_matrix),
477478
typeof(analytic),
478-
typeof(tgrad),typeof(jac),typeof(jvp),typeof(vjp),typeof(jac_prototype),
479+
typeof(tgrad),typeof(jac),typeof(jvp),typeof(vjp),typeof(jac_prototype),typeof(sparsity),
479480
typeof(Wfact),typeof(Wfact_t),typeof(paramjac),typeof(syms),
480481
typeof(colorvec)}(
481482
f1,f2,mass_matrix,analytic,tgrad,jac,jvp,vjp,jac_prototype,sparsity,
@@ -496,7 +497,7 @@ function DynamicalODEFunction{iip,false}(f1,f2;mass_matrix=(I,I),
496497
paramjac = nothing,
497498
syms = nothing,
498499
colorvec = nothing) where iip
499-
DynamicalODEFunction{iip,Any,Any,Any,Any,Any,Any,
500+
DynamicalODEFunction{iip,Any,Any,Any,Any,Any,Any,Any,
500501
Any,Any,Any,Any,Any}(
501502
f1,f2,mass_matrix,analytic,tgrad,
502503
jac,jvp,vjp,jac_prototype,sparsity,
@@ -555,7 +556,7 @@ function SDEFunction{iip,true}(f,g;
555556

556557
SDEFunction{iip,typeof(f),typeof(g),
557558
typeof(mass_matrix),typeof(analytic),typeof(tgrad),
558-
typeof(jac),typeof(jvp),typeof(vjp),typeof(jac_prototype),typeof(Wfact),typeof(Wfact_t),
559+
typeof(jac),typeof(jvp),typeof(vjp),typeof(jac_prototype),typeof(sparsity),typeof(Wfact),typeof(Wfact_t),
559560
typeof(paramjac),typeof(syms),
560561
typeof(ggprime),typeof(_colorvec)}(
561562
f,g,mass_matrix,analytic,tgrad,jac,jvp,vjp,jac_prototype,sparsity,Wfact,Wfact_t,
@@ -592,7 +593,7 @@ function SDEFunction{iip,false}(f,g;
592593
end
593594

594595
SDEFunction{iip,Any,Any,Any,Any,Any,
595-
Any,Any,Any,Any,
596+
Any,Any,Any,Any,Any,
596597
Any,typeof(syms),Any,typeof(_colorvec)}(
597598
f,g,mass_matrix,analytic,tgrad,jac,jvp,vjp,jac_prototype,sparsity,Wfact,Wfact_t,
598599
paramjac,ggprime,syms,_colorvec)
@@ -630,7 +631,7 @@ function SplitSDEFunction{iip,true}(f1,f2,g; mass_matrix=I,
630631
SplitSDEFunction{iip,typeof(f1),typeof(f2),typeof(g),
631632
typeof(mass_matrix),typeof(_func_cache),
632633
typeof(analytic),
633-
typeof(tgrad),typeof(jac),typeof(jvp),typeof(vjp),typeof(jac_prototype),
634+
typeof(tgrad),typeof(jac),typeof(jvp),typeof(vjp),typeof(jac_prototype),typeof(sparsity),
634635
typeof(Wfact),typeof(Wfact_t),typeof(paramjac),typeof(syms),
635636
typeof(colorvec)}(f1,f2,g,mass_matrix,_func_cache,analytic,
636637
tgrad,jac,jvp,vjp,jac_prototype,sparsity,
@@ -650,7 +651,7 @@ function SplitSDEFunction{iip,false}(f1,f2,g; mass_matrix=I,
650651
syms = nothing,
651652
colorvec = nothing) where iip
652653
SplitSDEFunction{iip,Any,Any,Any,Any,Any,
653-
Any,Any,Any,
654+
Any,Any,Any,Any,
654655
Any,Any,Any,Any,Any}(
655656
f1,f2,g,mass_matrix,_func_cache,analytic,
656657
tgrad,jac,jvp,vjp,jac_prototype,sparsity,
@@ -692,7 +693,7 @@ function RODEFunction{iip,true}(f;
692693

693694
RODEFunction{iip,typeof(f),typeof(mass_matrix),
694695
typeof(analytic),typeof(tgrad),
695-
typeof(jac),typeof(jvp),typeof(vjp),typeof(jac_prototype),typeof(Wfact),typeof(Wfact_t),
696+
typeof(jac),typeof(jvp),typeof(vjp),typeof(jac_prototype),typeof(sparsity),typeof(Wfact),typeof(Wfact_t),
696697
typeof(paramjac),typeof(syms),typeof(_colorvec)}(
697698
f,mass_matrix,analytic,tgrad,jac,jvp,vjp,jac_prototype,sparsity,Wfact,Wfact_t,
698699
paramjac,syms,_colorvec)
@@ -727,7 +728,7 @@ function RODEFunction{iip,false}(f;
727728
end
728729

729730
RODEFunction{iip,Any,Any,Any,Any,
730-
Any,Any,Any,Any,
731+
Any,Any,Any,Any,Any,
731732
Any,typeof(syms),typeof(_colorvec)}(
732733
f,mass_matrix,analytic,tgrad,jac,jvp,vjp,jac_prototype,sparsity,Wfact,Wfact_t,
733734
paramjac,syms,_colorvec)
@@ -766,7 +767,7 @@ function DAEFunction{iip,true}(f;
766767
end
767768

768769
DAEFunction{iip,typeof(f),typeof(analytic),typeof(tgrad),
769-
typeof(jac),typeof(jvp),typeof(vjp),typeof(jac_prototype),typeof(Wfact),typeof(Wfact_t),
770+
typeof(jac),typeof(jvp),typeof(vjp),typeof(jac_prototype),typeof(sparsity),typeof(Wfact),typeof(Wfact_t),
770771
typeof(paramjac),typeof(syms),typeof(_colorvec)}(
771772
f,analytic,tgrad,jac,jvp,vjp,jac_prototype,sparsity,Wfact,Wfact_t,
772773
paramjac,syms,_colorvec)
@@ -800,7 +801,7 @@ function DAEFunction{iip,false}(f;
800801
end
801802

802803
DAEFunction{iip,Any,Any,Any,
803-
Any,Any,Any,Any,
804+
Any,Any,Any,Any,Any,
804805
Any,typeof(syms),typeof(_colorvec)}(
805806
f,analytic,tgrad,jac,jvp,vjp,jac_prototype,sparsity,Wfact,Wfact_t,
806807
paramjac,syms,_colorvec)
@@ -840,7 +841,7 @@ function DDEFunction{iip,true}(f;
840841
end
841842

842843
DDEFunction{iip,typeof(f),typeof(mass_matrix),typeof(analytic),typeof(tgrad),
843-
typeof(jac),typeof(jvp),typeof(vjp),typeof(jac_prototype),typeof(Wfact),typeof(Wfact_t),
844+
typeof(jac),typeof(jvp),typeof(vjp),typeof(jac_prototype),typeof(sparsity),typeof(Wfact),typeof(Wfact_t),
844845
typeof(paramjac),typeof(syms),typeof(_colorvec)}(
845846
f,mass_matrix,analytic,tgrad,jac,jvp,vjp,jac_prototype,sparsity,Wfact,Wfact_t,
846847
paramjac,syms,_colorvec)
@@ -875,7 +876,7 @@ function DDEFunction{iip,false}(f;
875876
end
876877

877878
DDEFunction{iip,Any,Any,Any,Any,
878-
Any,Any,Any,Any,
879+
Any,Any,Any,Any,Any,
879880
Any,typeof(syms),typeof(_colorvec)}(
880881
f,mass_matrix,analytic,tgrad,jac,jvp,vjp,jac_prototype,sparsity,Wfact,Wfact_t,
881882
paramjac,syms,_colorvec)
@@ -916,7 +917,7 @@ function SDDEFunction{iip,true}(f,g;
916917

917918
SDDEFunction{iip,typeof(f),typeof(g),
918919
typeof(mass_matrix),typeof(analytic),typeof(tgrad),
919-
typeof(jac),typeof(jvp),typeof(vjp),typeof(jac_prototype),typeof(Wfact),typeof(Wfact_t),
920+
typeof(jac),typeof(jvp),typeof(vjp),typeof(jac_prototype),typeof(sparsity),typeof(Wfact),typeof(Wfact_t),
920921
typeof(paramjac),typeof(syms),
921922
typeof(ggprime),typeof(_colorvec)}(
922923
f,g,mass_matrix,analytic,tgrad,jac,jvp,vjp,jac_prototype,sparsity,Wfact,Wfact_t,
@@ -954,7 +955,7 @@ function SDDEFunction{iip,false}(f,g;
954955
end
955956

956957
SDDEFunction{iip,Any,Any,Any,Any,Any,
957-
Any,Any,Any,Any,
958+
Any,Any,Any,Any,Any,
958959
Any,typeof(syms),Any,typeof(_colorvec)}(
959960
f,g,mass_matrix,analytic,tgrad,jac,jvp,vjp,jac_prototype,sparsity,Wfact,Wfact_t,
960961
paramjac,ggprime,syms,_colorvec)

0 commit comments

Comments
 (0)