@@ -152,16 +152,18 @@ function (f::ODEToExpr)(O::Operation)
152152end
153153(f:: ODEToExpr )(x) = convert (Expr, x)
154154
155- function generate_jacobian (sys:: ODESystem ; version:: FunctionVersion = ArrayFunction)
155+ function generate_jacobian (sys:: ODESystem ; version:: FunctionVersion = nothing )
156+ version != nothing && @warn (" version is deprecated. Both dispatches are now constructed in the same function by defualt." )
156157 jac = calculate_jacobian (sys)
157- return build_function (jac, sys. dvs, sys. ps, (sys. iv. name,), ODEToExpr (sys); version = version )
158+ return build_function (jac, sys. dvs, sys. ps, (sys. iv. name,), ODEToExpr (sys))
158159end
159160
160- function generate_function (sys:: ODESystem , dvs, ps; version:: FunctionVersion = ArrayFunction)
161+ function generate_function (sys:: ODESystem , dvs, ps; version:: FunctionVersion = nothing )
162+ version != nothing && @warn (" version is deprecated. Both dispatches are now constructed in the same function by defualt." )
161163 rhss = [deq. rhs for deq ∈ sys. eqs]
162164 dvs′ = [clean (dv) for dv ∈ dvs]
163165 ps′ = [clean (p) for p ∈ ps]
164- return build_function (rhss, dvs′, ps′, (sys. iv. name,), ODEToExpr (sys); version = version )
166+ return build_function (rhss, dvs′, ps′, (sys. iv. name,), ODEToExpr (sys))
165167end
166168
167169function calculate_factorized_W (sys:: ODESystem , simplify= true )
@@ -188,7 +190,8 @@ function calculate_factorized_W(sys::ODESystem, simplify=true)
188190 (Wfact,Wfact_t)
189191end
190192
191- function generate_factorized_W (sys:: ODESystem , simplify= true ; version:: FunctionVersion = ArrayFunction)
193+ function generate_factorized_W (sys:: ODESystem , simplify= true ; version:: FunctionVersion = nothing )
194+ version != nothing && @warn (" version is deprecated. Both dispatches are now constructed in the same function by defualt." )
192195 (Wfact,Wfact_t) = calculate_factorized_W (sys,simplify)
193196
194197 if version === SArrayFunction
@@ -202,8 +205,8 @@ function generate_factorized_W(sys::ODESystem, simplify=true; version::FunctionV
202205 end
203206
204207 vs, ps = sys. dvs, sys. ps
205- Wfact_func = build_function (Wfact , vs, ps, (:gam ,:t ), ODEToExpr (sys); version = version, constructor= constructor)
206- Wfact_t_func = build_function (Wfact_t, vs, ps, (:gam ,:t ), ODEToExpr (sys); version = version, constructor= constructor)
208+ Wfact_func = build_function (Wfact , vs, ps, (:gam ,:t ), ODEToExpr (sys);constructor= constructor)
209+ Wfact_t_func = build_function (Wfact_t, vs, ps, (:gam ,:t ), ODEToExpr (sys);constructor= constructor)
207210
208211 return (Wfact_func, Wfact_t_func)
209212end
@@ -215,16 +218,15 @@ Create an `ODEFunction` from the [`ODESystem`](@ref). The arguments `dvs` and `p
215218are used to set the order of the dependent variable and parameter vectors,
216219respectively.
217220"""
218- function DiffEqBase. ODEFunction (sys:: ODESystem , dvs, ps; version:: FunctionVersion = ArrayFunction,
219- jac = false , Wfact = false )
220- expr = eval (generate_function (sys, dvs, ps; version = version))
221+ function DiffEqBase. ODEFunction {iip} (sys:: ODESystem , dvs, ps; version:: FunctionVersion = nothing ,
222+ jac = false , Wfact = false ) where iip
223+ version != nothing && @warn (" version is deprecated. Both dispatches are now constructed in the same function by defualt." )
224+ expr = eval (generate_function (sys, dvs, ps))
221225 jac_expr = jac ? nothing : eval (generate_jacobian (sys))
222- Wfact_expr,Wfact_t_expr = Wfact ? (nothing ,nothing ) : eval .(calculate_factorized_W (sys))
223- if version === ArrayFunction
224- ODEFunction {true} (eval (expr),jac= jac_expr,
225- Wfact = Wfact_expr, Wfact_t = Wfact_t_expr)
226- elseif version === SArrayFunction
227- ODEFunction {false} (eval (expr),jac= jac_expr,
228- Wfact = Wfact_expr, Wfact_t = Wfact_t_expr)
229- end
226+ Wfact_expr,Wfact_t_expr = Wfact ? (nothing ,nothing ) : eval .(generate_factorized_W (sys))
227+ ODEFunction {iip} (eval (expr),jac= jac_expr,
228+ Wfact = Wfact_expr, Wfact_t = Wfact_t_expr)
229+ end
230+ function DiffEqBase. ODEFunction (sys:: ODESystem , args... ; kwargs... )
231+ ODEFunction {true} (sys, args... ; kwargs... )
230232end
0 commit comments