Skip to content

Commit dc09909

Browse files
refactor: use build_function_wrapper in JumpSystem codegen
1 parent ead141a commit dc09909

File tree

1 file changed

+5
-15
lines changed

1 file changed

+5
-15
lines changed

src/systems/jumps/jumpsystem.jl

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -283,10 +283,8 @@ function generate_rate_function(js::JumpSystem, rate)
283283
rate = substitute(rate, csubs)
284284
end
285285
p = reorder_parameters(js, parameters(js))
286-
rf = build_function(rate, unknowns(js), p...,
286+
rf = build_function_wrapper(js, rate, unknowns(js), p...,
287287
get_iv(js),
288-
wrap_code = wrap_array_vars(js, rate; dvs = unknowns(js), ps = parameters(js)) .∘
289-
wrap_parameter_dependencies(js, !(rate isa AbstractArray)),
290288
expression = Val{true})
291289
end
292290

@@ -303,9 +301,7 @@ end
303301

304302
function assemble_vrj(
305303
js, vrj, unknowntoid; eval_expression = false, eval_module = @__MODULE__)
306-
_rate = eval_or_rgf(generate_rate_function(js, vrj.rate); eval_expression, eval_module)
307-
rate(u, p, t) = _rate(u, p, t)
308-
rate(u, p::MTKParameters, t) = _rate(u, p..., t)
304+
rate = eval_or_rgf(generate_rate_function(js, vrj.rate); eval_expression, eval_module)
309305

310306
outputvars = (value(affect.lhs) for affect in vrj.affect!)
311307
outputidxs = [unknowntoid[var] for var in outputvars]
@@ -320,9 +316,7 @@ function assemble_vrj_expr(js, vrj, unknowntoid)
320316
outputidxs = ((unknowntoid[var] for var in outputvars)...,)
321317
affect = generate_affect_function(js, vrj.affect!, outputidxs)
322318
quote
323-
_rate = $rate
324-
rate(u, p, t) = _rate(u, p, t)
325-
rate(u, p::MTKParameters, t) = _rate(u, p..., t)
319+
rate = $rate
326320

327321
affect = $affect
328322
VariableRateJump(rate, affect)
@@ -331,9 +325,7 @@ end
331325

332326
function assemble_crj(
333327
js, crj, unknowntoid; eval_expression = false, eval_module = @__MODULE__)
334-
_rate = eval_or_rgf(generate_rate_function(js, crj.rate); eval_expression, eval_module)
335-
rate(u, p, t) = _rate(u, p, t)
336-
rate(u, p::MTKParameters, t) = _rate(u, p..., t)
328+
rate = eval_or_rgf(generate_rate_function(js, crj.rate); eval_expression, eval_module)
337329

338330
outputvars = (value(affect.lhs) for affect in crj.affect!)
339331
outputidxs = [unknowntoid[var] for var in outputvars]
@@ -348,9 +340,7 @@ function assemble_crj_expr(js, crj, unknowntoid)
348340
outputidxs = ((unknowntoid[var] for var in outputvars)...,)
349341
affect = generate_affect_function(js, crj.affect!, outputidxs)
350342
quote
351-
_rate = $rate
352-
rate(u, p, t) = _rate(u, p, t)
353-
rate(u, p::MTKParameters, t) = _rate(u, p..., t)
343+
rate = $rate
354344

355345
affect = $affect
356346
ConstantRateJump(rate, affect)

0 commit comments

Comments
 (0)