@@ -152,16 +152,18 @@ function (f::ODEToExpr)(O::Operation)
152
152
end
153
153
(f:: ODEToExpr )(x) = convert (Expr, x)
154
154
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." )
156
157
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))
158
159
end
159
160
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." )
161
163
rhss = [deq. rhs for deq ∈ sys. eqs]
162
164
dvs′ = [clean (dv) for dv ∈ dvs]
163
165
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))
165
167
end
166
168
167
169
function calculate_factorized_W (sys:: ODESystem , simplify= true )
@@ -188,7 +190,8 @@ function calculate_factorized_W(sys::ODESystem, simplify=true)
188
190
(Wfact,Wfact_t)
189
191
end
190
192
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." )
192
195
(Wfact,Wfact_t) = calculate_factorized_W (sys,simplify)
193
196
194
197
if version === SArrayFunction
@@ -202,8 +205,8 @@ function generate_factorized_W(sys::ODESystem, simplify=true; version::FunctionV
202
205
end
203
206
204
207
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)
207
210
208
211
return (Wfact_func, Wfact_t_func)
209
212
end
@@ -215,16 +218,15 @@ Create an `ODEFunction` from the [`ODESystem`](@ref). The arguments `dvs` and `p
215
218
are used to set the order of the dependent variable and parameter vectors,
216
219
respectively.
217
220
"""
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))
221
225
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... )
230
232
end
0 commit comments