@@ -4,22 +4,29 @@ if isdefined(Base, :Experimental) && isdefined(Base.Experimental, Symbol("@max_m
4
4
@eval Base. Experimental. @max_methods 1
5
5
end
6
6
7
- using DiffEqBase, LinearAlgebra, LinearSolve, SparseArrays, SparseDiffTools
8
- import ArrayInterface: restructure
9
- import ForwardDiff
10
-
11
- import ADTypes: AbstractFiniteDifferencesMode
12
- import ArrayInterface: undefmatrix, matrix_colors, parameterless_type, ismutable, issingular
13
- import ConcreteStructs: @concrete
14
- import EnumX: @enumx
15
- import ForwardDiff: Dual
16
- import LinearSolve: ComposePreconditioner, InvPreconditioner, needs_concrete_A
17
- import RecursiveArrayTools: ArrayPartition,
18
- AbstractVectorOfArray, recursivecopy!, recursivefill!
19
7
import Reexport: @reexport
20
- import SciMLBase: AbstractNonlinearAlgorithm, NLStats, _unwrap_val, has_jac, isinplace
21
- import StaticArraysCore: StaticArray, SVector, SArray, MArray
22
- import UnPack: @unpack
8
+ import PrecompileTools
9
+
10
+ PrecompileTools. @recompile_invalidations begin
11
+ using DiffEqBase, LinearAlgebra, LinearSolve, SparseArrays, SparseDiffTools
12
+ import ArrayInterface: restructure
13
+
14
+ import ADTypes: AbstractFiniteDifferencesMode
15
+ import ArrayInterface: undefmatrix,
16
+ matrix_colors, parameterless_type, ismutable, issingular
17
+ import ConcreteStructs: @concrete
18
+ import EnumX: @enumx
19
+ import ForwardDiff
20
+ import ForwardDiff: Dual
21
+ import LinearSolve: ComposePreconditioner, InvPreconditioner, needs_concrete_A
22
+ import RecursiveArrayTools: ArrayPartition,
23
+ AbstractVectorOfArray, recursivecopy!, recursivefill!
24
+ import SciMLBase: AbstractNonlinearAlgorithm, NLStats, _unwrap_val, has_jac, isinplace
25
+ import StaticArraysCore: StaticArray, SVector, SArray, MArray
26
+ import UnPack: @unpack
27
+
28
+ using ADTypes, LineSearches, SciMLBase, SimpleNonlinearSolve
29
+ end
23
30
24
31
@reexport using ADTypes, LineSearches, SciMLBase, SimpleNonlinearSolve
25
32
@@ -81,25 +88,17 @@ include("jacobian.jl")
81
88
include (" ad.jl" )
82
89
include (" default.jl" )
83
90
84
- import PrecompileTools
85
-
86
- @static if VERSION ≥ v " 1.10-"
87
- PrecompileTools. @compile_workload begin
88
- for T in (Float32, Float64)
89
- prob = NonlinearProblem {false} ((u, p) -> u .* u .- p, T (0.1 ), T (2 ))
90
-
91
- precompile_algs = (NewtonRaphson (), TrustRegion (), LevenbergMarquardt (),
92
- PseudoTransient (), GeneralBroyden (), GeneralKlement (), nothing )
91
+ PrecompileTools. @compile_workload begin
92
+ for T in (Float32, Float64)
93
+ probs = (NonlinearProblem {false} ((u, p) -> u .* u .- p, T (0.1 ), T (2 )),
94
+ NonlinearProblem {false} ((u, p) -> u .* u .- p, T[0.1 ], T[2 ]),
95
+ NonlinearProblem {true} ((du, u, p) -> du .= u .* u .- p, T[0.1 ], T[2 ]))
93
96
94
- for alg in precompile_algs
95
- solve (prob, alg, abstol = T (1e-2 ))
96
- end
97
+ precompile_algs = (NewtonRaphson (), TrustRegion (), LevenbergMarquardt (),
98
+ PseudoTransient (), GeneralBroyden (), GeneralKlement (), nothing )
97
99
98
- prob = NonlinearProblem {true} ((du, u, p) -> du[1 ] = u[1 ] * u[1 ] - p[1 ], T[0.1 ],
99
- T[2 ])
100
- for alg in precompile_algs
101
- solve (prob, alg, abstol = T (1e-2 ))
102
- end
100
+ for prob in probs, alg in precompile_algs
101
+ solve (prob, alg, abstol = T (1e-2 ))
103
102
end
104
103
end
105
104
end
0 commit comments