Skip to content

Commit

Permalink
refactor: fix unnecessary allocations in SciMLFunction constructors
Browse files Browse the repository at this point in the history
  • Loading branch information
AayushSabharwal committed Nov 30, 2023
1 parent 03e7a25 commit 9ca3739
Showing 1 changed file with 19 additions and 29 deletions.
48 changes: 19 additions & 29 deletions src/scimlfunctions.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2477,7 +2477,7 @@ function ODEFunction{iip, specialize}(f;

_f = prepare_function(f)

sys = something(sys, SymbolCache(something(syms, []), something(paramsyms, []), indepsym === nothing ? [] : [indepsym]))
sys = something(sys, SymbolCache(syms, paramsyms, indepsym))

if specialize === NoSpecialize
ODEFunction{iip, specialize,
Expand Down Expand Up @@ -2695,7 +2695,7 @@ function SplitFunction{iip, specialize}(f1, f2;
sys = __has_sys(f1) ? f1.sys : nothing) where {iip,
specialize,
}
sys = something(sys, SymbolCache(something(syms, []), something(paramsyms, []), something([indepsym], [])))
sys = something(sys, SymbolCache(syms, paramsyms, indepsym))
if specialize === NoSpecialize
SplitFunction{iip, specialize, Any, Any, Any, Any, Any, Any, Any, Any, Any,
Any, Any, Any, Any, Any,
Expand Down Expand Up @@ -2776,7 +2776,7 @@ function DynamicalODEFunction{iip, specialize}(f1, f2;
iip,
specialize,
}
sys = something(sys, SymbolCache(something(syms, []), something(paramsyms, []), something([indepsym], [])))
sys = something(sys, SymbolCache(syms, paramsyms, indepsym))

if specialize === NoSpecialize
DynamicalODEFunction{iip, specialize, Any, Any, Any, Any, Any, Any, Any,
Expand Down Expand Up @@ -2824,7 +2824,7 @@ function DiscreteFunction{iip, specialize}(f;
specialize,
}
_f = prepare_function(f)
sys = something(sys, SymbolCache(something(syms, []), something(paramsyms, []), something([indepsym], [])))
sys = something(sys, SymbolCache(syms, paramsyms, indepsym))

if specialize === NoSpecialize
DiscreteFunction{iip, specialize, Any, Any, Any, Any}(_f, analytic,
Expand Down Expand Up @@ -2872,7 +2872,7 @@ function ImplicitDiscreteFunction{iip, specialize}(f;
specialize,
}
_f = prepare_function(f)
sys = something(sys, SymbolCache(something(syms, []), something(paramsyms, []), something([indepsym], [])))
sys = something(sys, SymbolCache(syms, paramsyms, indepsym))

if specialize === NoSpecialize
ImplicitDiscreteFunction{iip, specialize, Any, Any, Any, Any}(_f,
Expand Down Expand Up @@ -2968,7 +2968,7 @@ function SDEFunction{iip, specialize}(f, g;
_f = prepare_function(f)
_g = prepare_function(g)

sys = something(sys, SymbolCache(something(syms, []), something(paramsyms, []), something([indepsym], [])))
sys = something(sys, SymbolCache(syms, paramsyms, indepsym))

if specialize === NoSpecialize
SDEFunction{iip, specialize, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any,
Expand Down Expand Up @@ -2998,12 +2998,10 @@ end
function unwrapped_f(f::SDEFunction, newf = unwrapped_f(f.f),
newg = unwrapped_f(f.g))
specialize = specialization(f)
sys = something(sys, SymbolCache(something(syms, []), something(paramsyms, []), something([indepsym], [])))


if specialize === NoSpecialize
SDEFunction{isinplace(f), specialize, Any, Any,
typeoff(f.mass_matrix), Any, Any,
typeof(f.mass_matrix), Any, Any,
Any, Any, Any, typeof(f.jac_prototype),
typeof(f.sparsity), Any, Any,
Any, Any,
Expand Down Expand Up @@ -3100,7 +3098,7 @@ function SplitSDEFunction{iip, specialize}(f1, f2, g;
iip,
specialize,
}
sys = something(sys, SymbolCache(something(syms, []), something(paramsyms, []), something([indepsym], [])))
sys = something(sys, SymbolCache(syms, paramsyms, indepsym))

if specialize === NoSpecialize
SplitSDEFunction{iip, specialize, Any, Any, Any, Any, Any, Any,
Expand Down Expand Up @@ -3183,7 +3181,7 @@ function DynamicalSDEFunction{iip, specialize}(f1, f2, g;
iip,
specialize,
}
sys = something(sys, SymbolCache(something(syms, []), something(paramsyms, []), something([indepsym], [])))
sys = something(sys, SymbolCache(syms, paramsyms, indepsym))

if specialize === NoSpecialize
DynamicalSDEFunction{iip, specialize, Any, Any, Any, Any, Any, Any,
Expand Down Expand Up @@ -3279,7 +3277,7 @@ function RODEFunction{iip, specialize}(f;
=#

_f = prepare_function(f)
sys = something(sys, SymbolCache(something(syms, []), something(paramsyms, []), something([indepsym], [])))
sys = something(sys, SymbolCache(syms, paramsyms, indepsym))


if specialize === NoSpecialize
Expand Down Expand Up @@ -3367,7 +3365,7 @@ function DAEFunction{iip, specialize}(f;
end

_f = prepare_function(f)
sys = something(sys, SymbolCache(something(syms, []), something(paramsyms, []), something([indepsym], [])))
sys = something(sys, SymbolCache(syms, paramsyms, indepsym))


if specialize === NoSpecialize
Expand Down Expand Up @@ -3455,7 +3453,7 @@ function DDEFunction{iip, specialize}(f;
end

_f = prepare_function(f)
sys = something(sys, SymbolCache(something(syms, []), something(paramsyms, []), something([indepsym], [])))
sys = something(sys, SymbolCache(syms, paramsyms, indepsym))


if specialize === NoSpecialize
Expand Down Expand Up @@ -3545,7 +3543,7 @@ function DynamicalDDEFunction{iip, specialize}(f1, f2;
iip,
specialize,
}
sys = something(sys, SymbolCache(something(syms, []), something(paramsyms, []), something([indepsym], [])))
sys = something(sys, SymbolCache(syms, paramsyms, indepsym))

if specialize === NoSpecialize
DynamicalDDEFunction{iip, specialize, Any, Any, Any, Any, Any, Any, Any, Any, Any,
Expand Down Expand Up @@ -3625,7 +3623,7 @@ function SDDEFunction{iip, specialize}(f, g;

_f = prepare_function(f)
_g = prepare_function(g)
sys = something(sys, SymbolCache(something(syms, []), something(paramsyms, []), something([indepsym], [])))
sys = something(sys, SymbolCache(syms, paramsyms, indepsym))


if specialize === NoSpecialize
Expand Down Expand Up @@ -3729,7 +3727,7 @@ function NonlinearFunction{iip, specialize}(f;
end

_f = prepare_function(f)
sys = something(sys, SymbolCache(something(syms, []), something(paramsyms, [])))
sys = something(sys, SymbolCache(syms, paramsyms))


if specialize === NoSpecialize
Expand Down Expand Up @@ -3784,20 +3782,12 @@ function IntervalNonlinearFunction{iip, specialize}(f;
specialize,
}
_f = prepare_function(f)
sys = something(sys, SymbolCache(something(syms, []), something(paramsyms, [])))
sys = something(sys, SymbolCache(syms, paramsyms))


if specialize === NoSpecialize
IntervalNonlinearFunction{iip, specialize,
Any, Any, Any,
typeof(_colorvec), Any}(_f, mass_matrix,
analytic, tgrad, jac,
jvp, vjp,
jac_prototype,
sparsity, Wfact,
Wfact_t, paramjac,
observed,
_colorvec, sys)
Any, Any, Any, Any}(_f, analytic, observed, sys)
else
IntervalNonlinearFunction{iip, specialize,
typeof(_f), typeof(analytic),
Expand Down Expand Up @@ -3842,7 +3832,7 @@ function OptimizationFunction{iip}(f, adtype::AbstractADType = NoAD();
nothing,
lag_hess_colorvec = nothing) where {iip}
isinplace(f, 2; has_two_dispatches = false, isoptimization = true)
sys = something(sys, SymbolCache(something(syms, []), something(paramsyms, [])))
sys = something(sys, SymbolCache(syms, paramsyms))
OptimizationFunction{iip, typeof(adtype), typeof(f), typeof(grad), typeof(hess),
typeof(hv),
typeof(cons), typeof(cons_j), typeof(cons_h),
Expand Down Expand Up @@ -3986,7 +3976,7 @@ function BVPFunction{iip, specialize, twopoint}(f, bc;

_f = prepare_function(f)

sys = something(sys, SymbolCache(something(syms, []), something(paramsyms, []), something([indepsym], [])))
sys = something(sys, SymbolCache(syms, paramsyms, indepsym))


if specialize === NoSpecialize
Expand Down

0 comments on commit 9ca3739

Please sign in to comment.