@@ -313,7 +313,7 @@ function DiffEqBase.ODEFunction{iip, specialize}(sys::AbstractODESystem,
313
313
version = nothing , tgrad = false ,
314
314
jac = false , p = nothing ,
315
315
t = nothing ,
316
- eval_expression = true ,
316
+ eval_expression = false ,
317
317
sparse = false , simplify = false ,
318
318
eval_module = @__MODULE__ ,
319
319
steady_state = false ,
@@ -327,12 +327,12 @@ function DiffEqBase.ODEFunction{iip, specialize}(sys::AbstractODESystem,
327
327
if ! iscomplete (sys)
328
328
error (" A completed system is required. Call `complete` or `structural_simplify` on the system before creating an `ODEFunction`" )
329
329
end
330
- f_gen = generate_function (sys, dvs, ps; expression = Val{eval_expression },
330
+ f_gen = generate_function (sys, dvs, ps; expression = Val{true },
331
331
expression_module = eval_module, checkbounds = checkbounds,
332
332
kwargs... )
333
- f_oop, f_iip = eval_expression ?
334
- (drop_expr (@ RuntimeGeneratedFunction (eval_module, ex)) for ex in f_gen) :
335
- f_gen
333
+ f_oop, f_iip = eval_expression ? eval_module . eval .(f_gen) :
334
+ (drop_expr (RuntimeGeneratedFunction (eval_module, eval_module, ex)) for ex in f_gen)
335
+
336
336
f (u, p, t) = f_oop (u, p, t)
337
337
f (du, u, p, t) = f_iip (du, u, p, t)
338
338
f (u, p:: Tuple{Vararg{Number}} , t) = f_oop (u, p, t)
@@ -352,12 +352,12 @@ function DiffEqBase.ODEFunction{iip, specialize}(sys::AbstractODESystem,
352
352
if tgrad
353
353
tgrad_gen = generate_tgrad (sys, dvs, ps;
354
354
simplify = simplify,
355
- expression = Val{eval_expression },
355
+ expression = Val{true },
356
356
expression_module = eval_module,
357
357
checkbounds = checkbounds, kwargs... )
358
- tgrad_oop, tgrad_iip = eval_expression ?
359
- (drop_expr (@ RuntimeGeneratedFunction (eval_module, ex)) for ex in tgrad_gen) :
360
- tgrad_gen
358
+ tgrad_oop, tgrad_iip = eval_expression ? eval_module . eval .(tgrad_gen) :
359
+ (drop_expr (RuntimeGeneratedFunction (
360
+ eval_module, eval_module, ex)) for ex in tgrad_gen)
361
361
if p isa Tuple
362
362
__tgrad (u, p, t) = tgrad_oop (u, p... , t)
363
363
__tgrad (J, u, p, t) = tgrad_iip (J, u, p... , t)
@@ -374,12 +374,13 @@ function DiffEqBase.ODEFunction{iip, specialize}(sys::AbstractODESystem,
374
374
if jac
375
375
jac_gen = generate_jacobian (sys, dvs, ps;
376
376
simplify = simplify, sparse = sparse,
377
- expression = Val{eval_expression },
377
+ expression = Val{true },
378
378
expression_module = eval_module,
379
379
checkbounds = checkbounds, kwargs... )
380
- jac_oop, jac_iip = eval_expression ?
381
- (drop_expr (@RuntimeGeneratedFunction (eval_module, ex)) for ex in jac_gen) :
382
- jac_gen
380
+ jac_oop, jac_iip = eval_expression ? eval_module. eval .(jac_gen) :
381
+ (drop_expr (RuntimeGeneratedFunction (
382
+ eval_module, eval_module, ex)) for ex in jac_gen)
383
+
383
384
_jac (u, p, t) = jac_oop (u, p, t)
384
385
_jac (J, u, p, t) = jac_iip (J, u, p, t)
385
386
_jac (u, p:: Tuple{Vararg{Number}} , t) = jac_oop (u, p, t)
@@ -474,7 +475,7 @@ function DiffEqBase.DAEFunction{iip}(sys::AbstractODESystem, dvs = unknowns(sys)
474
475
ddvs = map (diff2term ∘ Differential (get_iv (sys)), dvs),
475
476
version = nothing , p = nothing ,
476
477
jac = false ,
477
- eval_expression = true ,
478
+ eval_expression = false ,
478
479
sparse = false , simplify = false ,
479
480
eval_module = @__MODULE__ ,
480
481
checkbounds = false ,
@@ -485,12 +486,11 @@ function DiffEqBase.DAEFunction{iip}(sys::AbstractODESystem, dvs = unknowns(sys)
485
486
error (" A completed system is required. Call `complete` or `structural_simplify` on the system before creating a `DAEFunction`" )
486
487
end
487
488
f_gen = generate_function (sys, dvs, ps; implicit_dae = true ,
488
- expression = Val{eval_expression },
489
+ expression = Val{true },
489
490
expression_module = eval_module, checkbounds = checkbounds,
490
491
kwargs... )
491
- f_oop, f_iip = eval_expression ?
492
- (drop_expr (@RuntimeGeneratedFunction (eval_module, ex)) for ex in f_gen) :
493
- f_gen
492
+ f_oop, f_iip = eval_expression ? eval_module. eval .(f_gen) :
493
+ (drop_expr (RuntimeGeneratedFunction (eval_module, eval_module, ex)) for ex in f_gen)
494
494
f (du, u, p, t) = f_oop (du, u, p, t)
495
495
f (du, u, p:: MTKParameters , t) = f_oop (du, u, p... , t)
496
496
f (out, du, u, p, t) = f_iip (out, du, u, p, t)
@@ -499,12 +499,13 @@ function DiffEqBase.DAEFunction{iip}(sys::AbstractODESystem, dvs = unknowns(sys)
499
499
if jac
500
500
jac_gen = generate_dae_jacobian (sys, dvs, ps;
501
501
simplify = simplify, sparse = sparse,
502
- expression = Val{eval_expression },
502
+ expression = Val{true },
503
503
expression_module = eval_module,
504
504
checkbounds = checkbounds, kwargs... )
505
- jac_oop, jac_iip = eval_expression ?
506
- (drop_expr (@RuntimeGeneratedFunction (eval_module, ex)) for ex in jac_gen) :
507
- jac_gen
505
+ jac_oop, jac_iip = eval_expression ? eval_module. eval .(jac_gen) :
506
+ (drop_expr (RuntimeGeneratedFunction (
507
+ eval_module, eval_module, ex)) for ex in jac_gen)
508
+
508
509
_jac (du, u, p, ˍ₋gamma, t) = jac_oop (du, u, p, ˍ₋gamma, t)
509
510
_jac (du, u, p:: MTKParameters , ˍ₋gamma, t) = jac_oop (du, u, p... , ˍ₋gamma, t)
510
511
@@ -555,7 +556,7 @@ function DiffEqBase.DDEFunction{iip}(sys::AbstractODESystem, dvs = unknowns(sys)
555
556
expression = Val{true },
556
557
expression_module = eval_module, checkbounds = checkbounds,
557
558
kwargs... )
558
- f_oop, f_iip = (drop_expr (@ RuntimeGeneratedFunction (eval_module, ex)) for ex in f_gen)
559
+ f_oop, f_iip = (drop_expr (RuntimeGeneratedFunction (eval_module, eval_module, ex)) for ex in f_gen)
559
560
f (u, h, p, t) = f_oop (u, h, p, t)
560
561
f (u, h, p:: MTKParameters , t) = f_oop (u, h, p... , t)
561
562
f (du, u, h, p, t) = f_iip (du, u, h, p, t)
@@ -580,7 +581,7 @@ function DiffEqBase.SDDEFunction{iip}(sys::AbstractODESystem, dvs = unknowns(sys
580
581
expression = Val{true },
581
582
expression_module = eval_module, checkbounds = checkbounds,
582
583
kwargs... )
583
- f_oop, f_iip = (drop_expr (@ RuntimeGeneratedFunction (eval_module, ex)) for ex in f_gen)
584
+ f_oop, f_iip = (drop_expr (RuntimeGeneratedFunction (eval_module, eval_module, ex)) for ex in f_gen)
584
585
g_gen = generate_diffusion_function (sys, dvs, ps; expression = Val{true },
585
586
isdde = true , kwargs... )
586
587
g_oop, g_iip = (drop_expr (@RuntimeGeneratedFunction (ex)) for ex in g_gen)
@@ -770,7 +771,7 @@ function process_DEProblem(constructor, sys::AbstractODESystem, u0map, parammap;
770
771
checkbounds = false , sparse = false ,
771
772
simplify = false ,
772
773
linenumbers = true , parallel = SerialForm (),
773
- eval_expression = true ,
774
+ eval_expression = false ,
774
775
use_union = true ,
775
776
tofloat = true ,
776
777
symbolic_u0 = false ,
0 commit comments