@@ -47,9 +47,9 @@ sol = benchmark_scalar(sf, csu0)
47
47
# @test (@ballocated benchmark_mutable(ff, cu0)) < 200
48
48
# @test (@ballocated benchmark_scalar(sf, csu0)) < 400
49
49
50
- function benchmark_inplace (f, u0, linsolve)
50
+ function benchmark_inplace (f, u0, linsolve, precs )
51
51
probN = NonlinearProblem {true} (f, u0)
52
- solver = init (probN, NewtonRaphson (; linsolve), abstol = 1e-9 )
52
+ solver = init (probN, NewtonRaphson (; linsolve, precs ), abstol = 1e-9 )
53
53
sol = solve! (solver)
54
54
end
55
55
@@ -58,8 +58,13 @@ function ffiip(du, u, p)
58
58
end
59
59
u0 = [1.0 , 1.0 ]
60
60
61
- for linsolve in (nothing , KrylovJL_GMRES ())
62
- sol = benchmark_inplace (ffiip, u0, linsolve)
61
+ precs = [
62
+ NonlinearSolve. DEFAULT_PRECS,
63
+ (args... ) -> (Diagonal (rand! (similar (u0))), nothing )
64
+ ]
65
+
66
+ for prec in precs, linsolve in (nothing , KrylovJL_GMRES ())
67
+ sol = benchmark_inplace (ffiip, u0, linsolve, prec)
63
68
@test sol. retcode === ReturnCode. Success
64
69
@test all (abs .(sol. u .* sol. u .- 2 ) .< 1e-9 )
65
70
end
0 commit comments