@@ -588,15 +588,9 @@ Base.isempty(cb::AbstractCallback) = isempty(cb.conditions)
588588 compile_condition(cb::AbstractCallback, sys, dvs, ps; expression, kwargs...)
589589
590590Returns a function `condition(u,t,integrator)`, condition(out,u,t,integrator)` returning the `condition(cb)`.
591-
592- Notes
593-
594- - `expression = Val{true}`, causes the generated function to be returned as an expression.
595- If set to `Val{false}` a `RuntimeGeneratedFunction` will be returned.
596- - `kwargs` are passed through to `Symbolics.build_function`.
597591"""
598- function compile_condition (cb :: SymbolicDiscreteCallback , sys, dvs, ps;
599- expression = Val{ true }, eval_expression = false , eval_module = @__MODULE__ , kwargs... )
592+ function compile_condition (cbs :: Union{AbstractCallback, Vector{<:AbstractCallback}} , sys, dvs, ps;
593+ eval_expression = false , eval_module = @__MODULE__ , kwargs... )
600594 u = map (value, dvs)
601595 p = map .(value, reorder_parameters (sys, ps))
602596 t = get_iv (sys)
@@ -613,22 +607,16 @@ function compile_condition(cb::SymbolicDiscreteCallback, sys, dvs, ps;
613607 [condit. lhs - condit. rhs]
614608 end
615609
616- fs = build_function_wrapper (sys,
617- condit, u, p... , t; expression,
618- kwargs... )
619-
620- if expression == Val{false }
621- fs = eval_or_rgf .(fs; eval_expression, eval_module)
622- end
623- f_oop, f_iip = is_discrete (cbs) ? (fs, nothing ) : fs # no iip function for discrete condition.
610+ fs = build_function_wrapper (sys, condit, u, p... , t; kwargs... , expression = Val{false })
611+ (f_oop, f_iip) = is_discrete (cbs) ? (fs, nothing ) : fs
624612
625613 cond = if cbs isa AbstractVector
626614 (out, u, t, integ) -> f_iip (out, u, parameter_values (integ), t)
627615 elseif is_discrete (cbs)
628616 (u, t, integ) -> f_oop (u, parameter_values (integ), t)
629617 else
630618 function (u, t, integ)
631- if DiffEqBase. isinplace (integ . sol . prob)
619+ if DiffEqBase. isinplace (SciMLBase . get_sol (integ) . prob)
632620 tmp, = DiffEqBase. get_tmp_cache (integ)
633621 f_iip (tmp, u, parameter_values (integ), t)
634622 tmp[1 ]
@@ -808,13 +796,6 @@ Returns a function that takes an integrator as argument and modifies the state w
808796affect. The generated function has the signature `affect!(integrator)`.
809797
810798Notes
811-
812- - `expression = Val{true}`, causes the generated function to be returned as an expression.
813- If set to `Val{false}` a `RuntimeGeneratedFunction` will be returned.
814- - `outputidxs`, a vector of indices of the output variables which should correspond to
815- `unknowns(sys)`. If provided, checks that the LHS of affect equations are variables are
816- dropped, i.e. it is assumed these indices are correct and affect equations are
817- well-formed.
818799 - `kwargs` are passed through to `Symbolics.build_function`.
819800"""
820801function compile_affect (
0 commit comments