@@ -189,7 +189,9 @@ function generate_function(sys::AbstractODESystem, dvs = unknowns(sys),
189189 wrap_code = identity,
190190 kwargs... )
191191 if isdde
192- eqs = delay_to_function (sys)
192+ issplit = has_index_cache (sys) && get_index_cache (sys) != = nothing
193+ eqs = delay_to_function (
194+ sys; history_arg = issplit ? MTKPARAMETERS_ARG : DEFAULT_PARAMS_ARG)
193195 else
194196 eqs = [eq for eq in equations (sys)]
195197 end
@@ -211,7 +213,10 @@ function generate_function(sys::AbstractODESystem, dvs = unknowns(sys),
211213 t = get_iv (sys)
212214
213215 if isdde
214- build_function (rhss, u, DDE_HISTORY_FUN, p... , t; kwargs... )
216+ build_function (rhss, u, DDE_HISTORY_FUN, p... , t; kwargs... ,
217+ wrap_code = wrap_code .∘ wrap_mtkparameters (sys, false , 3 ) .∘
218+ wrap_array_vars (sys, rhss; dvs, ps) .∘
219+ wrap_parameter_dependencies (sys, false ))
215220 else
216221 pre, sol_states = get_substitutions_and_solved_unknowns (sys)
217222
@@ -570,9 +575,7 @@ function DiffEqBase.DDEFunction{iip}(sys::AbstractODESystem, dvs = unknowns(sys)
570575 kwargs... )
571576 f_oop, f_iip = eval_or_rgf .(f_gen; eval_expression, eval_module)
572577 f (u, h, p, t) = f_oop (u, h, p, t)
573- f (u, h, p:: MTKParameters , t) = f_oop (u, h, p... , t)
574578 f (du, u, h, p, t) = f_iip (du, u, h, p, t)
575- f (du, u, h, p:: MTKParameters , t) = f_iip (du, u, h, p... , t)
576579
577580 DDEFunction {iip} (f, sys = sys)
578581end
0 commit comments