@@ -9,21 +9,22 @@ import PrecompileTools: @recompile_invalidations, @compile_workload, @setup_work
99
1010@recompile_invalidations begin
1111 using ADTypes, ConcreteStructs, DiffEqBase, FastBroadcast, FastClosures, LazyArrays,
12- LineSearches, LinearAlgebra, LinearSolve, MaybeInplace, Preferences, Printf,
13- SciMLBase, SimpleNonlinearSolve, SparseArrays, SparseDiffTools
12+ LineSearches, LinearAlgebra, LinearSolve, MaybeInplace, Preferences, Printf,
13+ SciMLBase, SimpleNonlinearSolve, SparseArrays, SparseDiffTools
1414
1515 import ArrayInterface: undefmatrix, can_setindex, restructure, fast_scalar_indexing
1616 import DiffEqBase: AbstractNonlinearTerminationMode,
17- AbstractSafeNonlinearTerminationMode, AbstractSafeBestNonlinearTerminationMode,
18- NonlinearSafeTerminationReturnCode, get_termination_mode
17+ AbstractSafeNonlinearTerminationMode,
18+ AbstractSafeBestNonlinearTerminationMode,
19+ NonlinearSafeTerminationReturnCode, get_termination_mode
1920 import FiniteDiff
2021 import ForwardDiff
2122 import ForwardDiff: Dual
2223 import LinearSolve: ComposePreconditioner, InvPreconditioner, needs_concrete_A
2324 import RecursiveArrayTools: recursivecopy!, recursivefill!
2425
2526 import SciMLBase: AbstractNonlinearAlgorithm, JacobianWrapper, AbstractNonlinearProblem,
26- AbstractSciMLOperator, NLStats, _unwrap_val, has_jac, isinplace
27+ AbstractSciMLOperator, NLStats, _unwrap_val, has_jac, isinplace
2728 import SparseDiffTools: AbstractSparsityDetection, AutoSparseEnzyme
2829 import StaticArraysCore: StaticArray, SVector, SArray, MArray, Size, SMatrix, MMatrix
2930end
@@ -44,11 +45,13 @@ include("adtypes.jl")
4445include (" timer_outputs.jl" )
4546include (" internal/helpers.jl" )
4647
48+ include (" descent/common.jl" )
4749include (" descent/newton.jl" )
4850include (" descent/steepest.jl" )
4951include (" descent/dogleg.jl" )
5052include (" descent/damped_newton.jl" )
5153include (" descent/geodesic_acceleration.jl" )
54+ include (" descent/multistep.jl" )
5255
5356include (" internal/operators.jl" )
5457include (" internal/jacobian.jl" )
@@ -95,20 +98,28 @@ include("default.jl")
9598 probs_nlls = NonlinearLeastSquaresProblem[]
9699 nlfuncs = ((NonlinearFunction {false} ((u, p) -> (u .^ 2 .- p)[1 : 1 ]), [0.1 , 0.0 ]),
97100 (NonlinearFunction {false} ((u, p) -> vcat (u .* u .- p, u .* u .- p)), [0.1 , 0.1 ]),
98- (NonlinearFunction {true} ((du, u, p) -> du[1 ] = u[1 ] * u[1 ] - p,
99- resid_prototype = zeros (1 )), [0.1 , 0.0 ]),
100- (NonlinearFunction {true} ((du, u, p) -> du .= vcat (u .* u .- p, u .* u .- p),
101- resid_prototype = zeros (4 )), [0.1 , 0.1 ]))
101+ (
102+ NonlinearFunction {true} ((du, u, p) -> du[1 ] = u[1 ] * u[1 ] - p,
103+ resid_prototype = zeros (1 )),
104+ [0.1 , 0.0 ]),
105+ (
106+ NonlinearFunction {true} ((du, u, p) -> du .= vcat (u .* u .- p, u .* u .- p),
107+ resid_prototype = zeros (4 )),
108+ [0.1 , 0.1 ]))
102109 for (fn, u0) in nlfuncs
103110 push! (probs_nlls, NonlinearLeastSquaresProblem (fn, u0, 2.0 ))
104111 end
105112 nlfuncs = ((NonlinearFunction {false} ((u, p) -> (u .^ 2 .- p)[1 : 1 ]), Float32[0.1 , 0.0 ]),
106113 (NonlinearFunction {false} ((u, p) -> vcat (u .* u .- p, u .* u .- p)),
107114 Float32[0.1 , 0.1 ]),
108- (NonlinearFunction {true} ((du, u, p) -> du[1 ] = u[1 ] * u[1 ] - p,
109- resid_prototype = zeros (Float32, 1 )), Float32[0.1 , 0.0 ]),
110- (NonlinearFunction {true} ((du, u, p) -> du .= vcat (u .* u .- p, u .* u .- p),
111- resid_prototype = zeros (Float32, 4 )), Float32[0.1 , 0.1 ]))
115+ (
116+ NonlinearFunction {true} ((du, u, p) -> du[1 ] = u[1 ] * u[1 ] - p,
117+ resid_prototype = zeros (Float32, 1 )),
118+ Float32[0.1 , 0.0 ]),
119+ (
120+ NonlinearFunction {true} ((du, u, p) -> du .= vcat (u .* u .- p, u .* u .- p),
121+ resid_prototype = zeros (Float32, 4 )),
122+ Float32[0.1 , 0.1 ]))
112123 for (fn, u0) in nlfuncs
113124 push! (probs_nlls, NonlinearLeastSquaresProblem (fn, u0, 2.0f0 ))
114125 end
@@ -132,18 +143,18 @@ end
132143export NewtonRaphson, PseudoTransient, Klement, Broyden, LimitedMemoryBroyden, DFSane
133144export GaussNewton, LevenbergMarquardt, TrustRegion
134145export NonlinearSolvePolyAlgorithm,
135- RobustMultiNewton, FastShortcutNonlinearPolyalg, FastShortcutNLLSPolyalg
146+ RobustMultiNewton, FastShortcutNonlinearPolyalg, FastShortcutNLLSPolyalg
136147
137148# Extension Algorithms
138149export LeastSquaresOptimJL, FastLevenbergMarquardtJL, CMINPACK, NLsolveJL,
139- FixedPointAccelerationJL, SpeedMappingJL, SIAMFANLEquationsJL
150+ FixedPointAccelerationJL, SpeedMappingJL, SIAMFANLEquationsJL
140151
141152# Advanced Algorithms -- Without Bells and Whistles
142153export GeneralizedFirstOrderAlgorithm, ApproximateJacobianSolveAlgorithm, GeneralizedDFSane
143154
144155# Descent Algorithms
145156export NewtonDescent, SteepestDescent, Dogleg, DampedNewtonDescent,
146- GeodesicAcceleration
157+ GeodesicAcceleration
147158
148159# Globalization
149160# # Line Search Algorithms
@@ -153,9 +164,9 @@ export RadiusUpdateSchemes
153164
154165# Export the termination conditions from DiffEqBase
155166export SteadyStateDiffEqTerminationMode, SimpleNonlinearSolveTerminationMode,
156- NormTerminationMode, RelTerminationMode, RelNormTerminationMode, AbsTerminationMode,
157- AbsNormTerminationMode, RelSafeTerminationMode, AbsSafeTerminationMode,
158- RelSafeBestTerminationMode, AbsSafeBestTerminationMode
167+ NormTerminationMode, RelTerminationMode, RelNormTerminationMode, AbsTerminationMode,
168+ AbsNormTerminationMode, RelSafeTerminationMode, AbsSafeTerminationMode,
169+ RelSafeBestTerminationMode, AbsSafeBestTerminationMode
159170
160171# Tracing Functionality
161172export TraceAll, TraceMinimal, TraceWithJacobianConditionNumber
0 commit comments