@@ -35,21 +35,38 @@ generate_function(de, [x,y,z], [σ,ρ,β])
35
35
jac_expr = generate_jacobian (de)
36
36
jac = calculate_jacobian (de)
37
37
jacfun = eval (jac_expr[2 ])
38
- # iip
39
- f = ODEFunction (de, [x,y,z], [σ,ρ,β])
40
- du = zeros (3 )
41
- u = collect (1 : 3 )
42
- p = collect (4 : 6 )
43
- f (du, u, p, 0.1 )
44
- @test du == [4 , 0 , - 16 ]
45
- J = zeros (3 , 3 )
46
- jacfun (J, u, p, t)
47
- # oop
48
- f = ODEFunction (de, [x,y,z], [σ,ρ,β])
49
- du = @SArray zeros (3 )
50
- u = SVector (1 : 3 ... )
51
- p = SVector (4 : 6 ... )
52
- @test f (u, p, 0.1 ) === @SArray [4 , 0 , - 16 ]
38
+
39
+ for f in [
40
+ ODEFunction (de, [x,y,z], [σ,ρ,β], tgrad = true , jac = true ),
41
+ eval (ODEFunctionExpr (de, [x,y,z], [σ,ρ,β], tgrad = true , jac = true )),
42
+ ]
43
+ # iip
44
+ du = zeros (3 )
45
+ u = collect (1 : 3 )
46
+ p = collect (4 : 6 )
47
+ f. f (du, u, p, 0.1 )
48
+ @test du == [4 , 0 , - 16 ]
49
+
50
+ # oop
51
+ du = @SArray zeros (3 )
52
+ u = SVector (1 : 3 ... )
53
+ p = SVector (4 : 6 ... )
54
+ @test f. f (u, p, 0.1 ) === @SArray [4 , 0 , - 16 ]
55
+
56
+ # iip vs oop
57
+ du = zeros (3 )
58
+ g = similar (du)
59
+ J = zeros (3 , 3 )
60
+ u = collect (1 : 3 )
61
+ p = collect (4 : 6 )
62
+ f. f (du, u, p, 0.1 )
63
+ @test du == f (u, p, 0.1 )
64
+ f. tgrad (g, u, p, t)
65
+ @test g == f. tgrad (u, p, t)
66
+ f. jac (J, u, p, t)
67
+ @test J == f. jac (u, p, t)
68
+ end
69
+
53
70
54
71
eqs = [D (x) ~ σ* (y- x),
55
72
D (y) ~ x* (ρ- z)- y* t,
0 commit comments