@@ -8,22 +8,23 @@ import Reexport: @reexport
8
8
import PrecompileTools: @recompile_invalidations , @compile_workload , @setup_workload
9
9
10
10
@recompile_invalidations begin
11
- using ADTypes, ConcreteStructs, DiffEqBase, FastBroadcast, FastClosures, LazyArrays ,
12
- LineSearches, LinearAlgebra, LinearSolve, MaybeInplace, Preferences, Printf ,
13
- SciMLBase, SimpleNonlinearSolve, SparseArrays, SparseDiffTools
11
+ using Accessors, ADTypes, ConcreteStructs, DiffEqBase, FastBroadcast, FastClosures,
12
+ LazyArrays, LineSearches, LinearAlgebra, LinearSolve, MaybeInplace, Preferences,
13
+ Printf, SciMLBase, SimpleNonlinearSolve, SparseArrays, SparseDiffTools
14
14
15
15
import ArrayInterface: undefmatrix, can_setindex, restructure, fast_scalar_indexing
16
16
import DiffEqBase: AbstractNonlinearTerminationMode,
17
- AbstractSafeNonlinearTerminationMode, AbstractSafeBestNonlinearTerminationMode,
18
- NonlinearSafeTerminationReturnCode, get_termination_mode
17
+ AbstractSafeNonlinearTerminationMode,
18
+ AbstractSafeBestNonlinearTerminationMode,
19
+ NonlinearSafeTerminationReturnCode, get_termination_mode
19
20
import FiniteDiff
20
21
import ForwardDiff
21
22
import ForwardDiff: Dual
22
23
import LinearSolve: ComposePreconditioner, InvPreconditioner, needs_concrete_A
23
24
import RecursiveArrayTools: recursivecopy!, recursivefill!
24
25
25
26
import SciMLBase: AbstractNonlinearAlgorithm, JacobianWrapper, AbstractNonlinearProblem,
26
- AbstractSciMLOperator, NLStats, _unwrap_val, has_jac, isinplace
27
+ AbstractSciMLOperator, NLStats, _unwrap_val, has_jac, isinplace
27
28
import SparseDiffTools: AbstractSparsityDetection, AutoSparseEnzyme
28
29
import StaticArraysCore: StaticArray, SVector, SArray, MArray, Size, SMatrix, MMatrix
29
30
end
@@ -98,20 +99,28 @@ include("default.jl")
98
99
probs_nlls = NonlinearLeastSquaresProblem[]
99
100
nlfuncs = ((NonlinearFunction {false} ((u, p) -> (u .^ 2 .- p)[1 : 1 ]), [0.1 , 0.0 ]),
100
101
(NonlinearFunction {false} ((u, p) -> vcat (u .* u .- p, u .* u .- p)), [0.1 , 0.1 ]),
101
- (NonlinearFunction {true} ((du, u, p) -> du[1 ] = u[1 ] * u[1 ] - p,
102
- resid_prototype = zeros (1 )), [0.1 , 0.0 ]),
103
- (NonlinearFunction {true} ((du, u, p) -> du .= vcat (u .* u .- p, u .* u .- p),
104
- resid_prototype = zeros (4 )), [0.1 , 0.1 ]))
102
+ (
103
+ NonlinearFunction {true} ((du, u, p) -> du[1 ] = u[1 ] * u[1 ] - p,
104
+ resid_prototype = zeros (1 )),
105
+ [0.1 , 0.0 ]),
106
+ (
107
+ NonlinearFunction {true} ((du, u, p) -> du .= vcat (u .* u .- p, u .* u .- p),
108
+ resid_prototype = zeros (4 )),
109
+ [0.1 , 0.1 ]))
105
110
for (fn, u0) in nlfuncs
106
111
push! (probs_nlls, NonlinearLeastSquaresProblem (fn, u0, 2.0 ))
107
112
end
108
113
nlfuncs = ((NonlinearFunction {false} ((u, p) -> (u .^ 2 .- p)[1 : 1 ]), Float32[0.1 , 0.0 ]),
109
114
(NonlinearFunction {false} ((u, p) -> vcat (u .* u .- p, u .* u .- p)),
110
115
Float32[0.1 , 0.1 ]),
111
- (NonlinearFunction {true} ((du, u, p) -> du[1 ] = u[1 ] * u[1 ] - p,
112
- resid_prototype = zeros (Float32, 1 )), Float32[0.1 , 0.0 ]),
113
- (NonlinearFunction {true} ((du, u, p) -> du .= vcat (u .* u .- p, u .* u .- p),
114
- resid_prototype = zeros (Float32, 4 )), Float32[0.1 , 0.1 ]))
116
+ (
117
+ NonlinearFunction {true} ((du, u, p) -> du[1 ] = u[1 ] * u[1 ] - p,
118
+ resid_prototype = zeros (Float32, 1 )),
119
+ Float32[0.1 , 0.0 ]),
120
+ (
121
+ NonlinearFunction {true} ((du, u, p) -> du .= vcat (u .* u .- p, u .* u .- p),
122
+ resid_prototype = zeros (Float32, 4 )),
123
+ Float32[0.1 , 0.1 ]))
115
124
for (fn, u0) in nlfuncs
116
125
push! (probs_nlls, NonlinearLeastSquaresProblem (fn, u0, 2.0f0 ))
117
126
end
@@ -133,21 +142,21 @@ end
133
142
134
143
# Core Algorithms
135
144
export NewtonRaphson, PseudoTransient, Klement, Broyden, LimitedMemoryBroyden, DFSane,
136
- MultiStepNonlinearSolver
145
+ MultiStepNonlinearSolver
137
146
export GaussNewton, LevenbergMarquardt, TrustRegion
138
147
export NonlinearSolvePolyAlgorithm,
139
- RobustMultiNewton, FastShortcutNonlinearPolyalg, FastShortcutNLLSPolyalg
148
+ RobustMultiNewton, FastShortcutNonlinearPolyalg, FastShortcutNLLSPolyalg
140
149
141
150
# Extension Algorithms
142
151
export LeastSquaresOptimJL, FastLevenbergMarquardtJL, CMINPACK, NLsolveJL,
143
- FixedPointAccelerationJL, SpeedMappingJL, SIAMFANLEquationsJL
152
+ FixedPointAccelerationJL, SpeedMappingJL, SIAMFANLEquationsJL
144
153
145
154
# Advanced Algorithms -- Without Bells and Whistles
146
155
export GeneralizedFirstOrderAlgorithm, ApproximateJacobianSolveAlgorithm, GeneralizedDFSane
147
156
148
157
# Descent Algorithms
149
158
export NewtonDescent, SteepestDescent, Dogleg, DampedNewtonDescent,
150
- GeodesicAcceleration, GenericMultiStepDescent
159
+ GeodesicAcceleration, GenericMultiStepDescent
151
160
# # Multistep Algorithms
152
161
export MultiStepSchemes
153
162
@@ -159,9 +168,9 @@ export RadiusUpdateSchemes
159
168
160
169
# Export the termination conditions from DiffEqBase
161
170
export SteadyStateDiffEqTerminationMode, SimpleNonlinearSolveTerminationMode,
162
- NormTerminationMode, RelTerminationMode, RelNormTerminationMode, AbsTerminationMode,
163
- AbsNormTerminationMode, RelSafeTerminationMode, AbsSafeTerminationMode,
164
- RelSafeBestTerminationMode, AbsSafeBestTerminationMode
171
+ NormTerminationMode, RelTerminationMode, RelNormTerminationMode, AbsTerminationMode,
172
+ AbsNormTerminationMode, RelSafeTerminationMode, AbsSafeTerminationMode,
173
+ RelSafeBestTerminationMode, AbsSafeBestTerminationMode
165
174
166
175
# Tracing Functionality
167
176
export TraceAll, TraceMinimal, TraceWithJacobianConditionNumber
0 commit comments