Skip to content

Commit caab830

Browse files
committed
Do not use inplace history function
1 parent a58c659 commit caab830

File tree

1 file changed

+7
-14
lines changed

1 file changed

+7
-14
lines changed

src/dde/ddetst.jl

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -499,32 +499,25 @@ const prob_dde_DDETST_D2 =
499499
r₁u₁u₂ = r₁ * u₁u₂
500500
r₂u₃ = r₂ * u[3]
501501

502-
# reduce allocations
503-
h(du, p, t - u[4])
504-
v = du[1] * du[2]
505-
w = v + du[3]
502+
v = h(p, t - u[4])
503+
v₁v₂ = v[1] * v[2]
506504

507505
du[1] = -r₁u₁u₂ + r₂u₃
508-
du[2] = -r₁u₁u₂ + α * r₁ * v
506+
du[2] = -r₁u₁u₂ + α * r₁ * v₁v₂
509507
du[3] = -du[1]
510-
du[4] = 1 + (3 * δ - u₁u₂ - u[3]) * exp* u[4]) / w
508+
du[4] = 1 + (3 * δ - u₁u₂ - u[3]) * exp* u[4]) / (v₁v₂ + v[3])
511509

512510
nothing
513511
end
514512

515-
u₀ = [5.0; 0.1; 0.0; 0.0]
516-
517-
# vectorized history function
518-
global function h_dde_DDETST_D2!(du, p, t)
513+
global function h_dde_DDETST_D2(p, t)
519514
t 0 || error("history function is only implemented for t ≤ 0")
520515

521-
copyto!(du, u₀)
522-
523-
nothing
516+
[5.0, 0.1, 0.0, 0.0]
524517
end
525518

526-
DDEProblem(f_dde_DDETST_D2!, u₀, h_dde_DDETST_D2!, (0.0, 40.0);
527519
dependent_lags = [(u, p, t) -> u[4]])
520+
DDEProblem(f_dde_DDETST_D2!, h_dde_DDETST_D2(nothing, 0.0), h_dde_DDETST_D2, (0.0, 40.0);
528521
end
529522

530523
# Problem E1

0 commit comments

Comments
 (0)