@@ -39,16 +39,16 @@ function DiffEqSystem(eqs, ivs)
39
39
end
40
40
41
41
42
- function generate_ode_function (sys:: DiffEqSystem ;version = ArrayFunction)
42
+ function generate_ode_function (sys:: DiffEqSystem ; version:: FunctionVersion = ArrayFunction)
43
43
var_exprs = [:($ (sys. dvs[i]. name) = u[$ i]) for i in eachindex (sys. dvs)]
44
44
param_exprs = [:($ (sys. ps[i]. name) = p[$ i]) for i in eachindex (sys. ps)]
45
45
sys_exprs = build_equals_expr .(sys. eqs)
46
- if version == ArrayFunction
46
+ if version === ArrayFunction
47
47
dvar_exprs = [:(du[$ i] = $ (Symbol (" $(sys. dvs[i]. name) _$(sys. ivs[1 ]. name) " ))) for i in eachindex (sys. dvs)]
48
48
exprs = vcat (var_exprs,param_exprs,sys_exprs,dvar_exprs)
49
49
block = expr_arr_to_block (exprs)
50
50
:((du,u,p,t)-> $ (toexpr (block)))
51
- elseif version == SArrayFunction
51
+ elseif version === SArrayFunction
52
52
dvar_exprs = [:($ (Symbol (" $(sys. dvs[i]. name) _$(sys. ivs[1 ]. name) " ))) for i in eachindex (sys. dvs)]
53
53
svector_expr = quote
54
54
E = eltype (tuple ($ (dvar_exprs... )))
@@ -117,12 +117,12 @@ function generate_ode_iW(sys::DiffEqSystem, simplify=true)
117
117
:((iW,u,p,gam,t)-> $ (block)),:((iW,u,p,gam,t)-> $ (block2))
118
118
end
119
119
120
- function DiffEqBase. ODEFunction (sys:: DiffEqSystem ;version = ArrayFunction,kwargs ... )
121
- expr = generate_ode_function (sys;version= version,kwargs ... )
122
- if version == ArrayFunction
123
- ODEFunction {true} (eval (expr))
124
- elseif version == SArrayFunction
125
- ODEFunction {false} (eval (expr))
120
+ function DiffEqBase. ODEFunction (sys:: DiffEqSystem ; version:: FunctionVersion = ArrayFunction)
121
+ expr = generate_ode_function (sys; version = version)
122
+ if version === ArrayFunction
123
+ ODEFunction {true} (eval (expr))
124
+ elseif version === SArrayFunction
125
+ ODEFunction {false} (eval (expr))
126
126
end
127
127
end
128
128
0 commit comments