@@ -30,6 +30,8 @@ using LazyArrays: LazyArrays, ApplyArray, cache
30
30
using LinearAlgebra: LinearAlgebra, ColumnNorm, Diagonal, I, LowerTriangular, Symmetric,
31
31
UpperTriangular, axpy!, cond, diag, diagind, dot, issuccess, istril,
32
32
istriu, lu, mul!, norm, pinv, tril!, triu!
33
+ using LineSearch: LineSearch, AbstractLineSearchAlgorithm, AbstractLineSearchCache,
34
+ NoLineSearch
33
35
using LineSearches: LineSearches
34
36
using LinearSolve: LinearSolve, LUFactorization, QRFactorization, ComposePreconditioner,
35
37
InvPreconditioner, needs_concrete_A, AbstractFactorization,
@@ -103,54 +105,54 @@ include("algorithms/extension_algs.jl")
103
105
include (" utils.jl" )
104
106
include (" default.jl" )
105
107
106
- @setup_workload begin
107
- nlfuncs = ((NonlinearFunction {false} ((u, p) -> u .* u .- p), 0.1 ),
108
- (NonlinearFunction {true} ((du, u, p) -> du .= u .* u .- p), [0.1 ]))
109
- probs_nls = NonlinearProblem[]
110
- for (fn, u0) in nlfuncs
111
- push! (probs_nls, NonlinearProblem (fn, u0, 2.0 ))
112
- end
113
-
114
- nls_algs = (NewtonRaphson (), TrustRegion (), LevenbergMarquardt (),
115
- PseudoTransient (), Broyden (), Klement (), DFSane (), nothing )
116
-
117
- probs_nlls = NonlinearLeastSquaresProblem[]
118
- nlfuncs = ((NonlinearFunction {false} ((u, p) -> (u .^ 2 .- p)[1 : 1 ]), [0.1 , 0.0 ]),
119
- (NonlinearFunction {false} ((u, p) -> vcat (u .* u .- p, u .* u .- p)), [0.1 , 0.1 ]),
120
- (
121
- NonlinearFunction {true} (
122
- (du, u, p) -> du[1 ] = u[1 ] * u[1 ] - p, resid_prototype = zeros (1 )),
123
- [0.1 , 0.0 ]),
124
- (
125
- NonlinearFunction {true} ((du, u, p) -> du .= vcat (u .* u .- p, u .* u .- p),
126
- resid_prototype = zeros (4 )),
127
- [0.1 , 0.1 ]))
128
- for (fn, u0) in nlfuncs
129
- push! (probs_nlls, NonlinearLeastSquaresProblem (fn, u0, 2.0 ))
130
- end
131
-
132
- nlls_algs = (LevenbergMarquardt (), GaussNewton (), TrustRegion (),
133
- LevenbergMarquardt (; linsolve = LUFactorization ()),
134
- GaussNewton (; linsolve = LUFactorization ()),
135
- TrustRegion (; linsolve = LUFactorization ()), nothing )
136
-
137
- @compile_workload begin
138
- @sync begin
139
- for T in (Float32, Float64), (fn, u0) in nlfuncs
140
- Threads. @spawn NonlinearProblem (fn, T .(u0), T (2 ))
141
- end
142
- for (fn, u0) in nlfuncs
143
- Threads. @spawn NonlinearLeastSquaresProblem (fn, u0, 2.0 )
144
- end
145
- for prob in probs_nls, alg in nls_algs
146
- Threads. @spawn solve (prob, alg; abstol = 1e-2 , verbose = false )
147
- end
148
- for prob in probs_nlls, alg in nlls_algs
149
- Threads. @spawn solve (prob, alg; abstol = 1e-2 , verbose = false )
150
- end
151
- end
152
- end
153
- end
108
+ # @setup_workload begin
109
+ # nlfuncs = ((NonlinearFunction{false}((u, p) -> u .* u .- p), 0.1),
110
+ # (NonlinearFunction{true}((du, u, p) -> du .= u .* u .- p), [0.1]))
111
+ # probs_nls = NonlinearProblem[]
112
+ # for (fn, u0) in nlfuncs
113
+ # push!(probs_nls, NonlinearProblem(fn, u0, 2.0))
114
+ # end
115
+
116
+ # nls_algs = (NewtonRaphson(), TrustRegion(), LevenbergMarquardt(),
117
+ # PseudoTransient(), Broyden(), Klement(), DFSane(), nothing)
118
+
119
+ # probs_nlls = NonlinearLeastSquaresProblem[]
120
+ # nlfuncs = ((NonlinearFunction{false}((u, p) -> (u .^ 2 .- p)[1:1]), [0.1, 0.0]),
121
+ # (NonlinearFunction{false}((u, p) -> vcat(u .* u .- p, u .* u .- p)), [0.1, 0.1]),
122
+ # (
123
+ # NonlinearFunction{true}(
124
+ # (du, u, p) -> du[1] = u[1] * u[1] - p, resid_prototype = zeros(1)),
125
+ # [0.1, 0.0]),
126
+ # (
127
+ # NonlinearFunction{true}((du, u, p) -> du .= vcat(u .* u .- p, u .* u .- p),
128
+ # resid_prototype = zeros(4)),
129
+ # [0.1, 0.1]))
130
+ # for (fn, u0) in nlfuncs
131
+ # push!(probs_nlls, NonlinearLeastSquaresProblem(fn, u0, 2.0))
132
+ # end
133
+
134
+ # nlls_algs = (LevenbergMarquardt(), GaussNewton(), TrustRegion(),
135
+ # LevenbergMarquardt(; linsolve = LUFactorization()),
136
+ # GaussNewton(; linsolve = LUFactorization()),
137
+ # TrustRegion(; linsolve = LUFactorization()), nothing)
138
+
139
+ # @compile_workload begin
140
+ # @sync begin
141
+ # for T in (Float32, Float64), (fn, u0) in nlfuncs
142
+ # Threads.@spawn NonlinearProblem(fn, T.(u0), T(2))
143
+ # end
144
+ # for (fn, u0) in nlfuncs
145
+ # Threads.@spawn NonlinearLeastSquaresProblem(fn, u0, 2.0)
146
+ # end
147
+ # for prob in probs_nls, alg in nls_algs
148
+ # Threads.@spawn solve(prob, alg; abstol = 1e-2, verbose = false)
149
+ # end
150
+ # for prob in probs_nlls, alg in nlls_algs
151
+ # Threads.@spawn solve(prob, alg; abstol = 1e-2, verbose = false)
152
+ # end
153
+ # end
154
+ # end
155
+ # end
154
156
155
157
# Core Algorithms
156
158
export NewtonRaphson, PseudoTransient, Klement, Broyden, LimitedMemoryBroyden, DFSane
0 commit comments