You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
add sub_kwargs parameter to LMSolver and solve! for subsolver (#245)
* add sub_kwargs parameter to LMSolver and solve! for subsolver keyword arguments
* add sub_kwargs parameter to LMTRSolver and solve! for passing subsolver keyword arguments and prox evaluations
Copy file name to clipboardExpand all lines: src/LMTR_alg.jl
+10-2Lines changed: 10 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -140,6 +140,7 @@ For advanced usage, first define a solver "LMSolver" to preallocate the memory u
140
140
- `β::T = 1/eps(T)`: TODO
141
141
- `χ = NormLinf(1)`: norm used to define the trust-region;`
142
142
- `subsolver::S = R2Solver`: subsolver used to solve the subproblem that appears at each iteration.
143
+
- `sub_kwargs::NamedTuple = NamedTuple()`: a named tuple containing the keyword arguments to be sent to the subsolver. The solver will fail if invalid keyword arguments are provided to the subsolver. For example, if the subsolver is `R2Solver`, you can pass `sub_kwargs = (max_iter = 100, σmin = 1e-6,)`.
143
144
144
145
The algorithm stops either when `√(ξₖ/νₖ) < atol + rtol*√(ξ₀/ν₀) ` or `ξₖ < 0` and `√(-ξₖ/νₖ) < neg_tol` where ξₖ := f(xₖ) + h(xₖ) - φ(sₖ; xₖ) - ψ(sₖ; xₖ), and √(ξₖ/νₖ) is a stationarity measure.
Copy file name to clipboardExpand all lines: src/LM_alg.jl
+5-2Lines changed: 5 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -140,6 +140,7 @@ For advanced usage, first define a solver "LMSolver" to preallocate the memory u
140
140
- `θ::T = 1/(1 + eps(T)^(1 / 5))`: is the model decrease fraction with respect to the decrease of the Cauchy model;
141
141
- `m_monotone::Int = 1`: monotonicity parameter. By default, LM is monotone but the non-monotone variant will be used if `m_monotone > 1`;
142
142
- `subsolver = R2Solver`: the solver used to solve the subproblems.
143
+
- `sub_kwargs::NamedTuple = NamedTuple()`: a named tuple containing the keyword arguments to be sent to the subsolver. The solver will fail if invalid keyword arguments are provided to the subsolver. For example, if the subsolver is `R2Solver`, you can pass `sub_kwargs = (max_iter = 100, σmin = 1e-6,)`.
143
144
144
145
The algorithm stops either when `√(ξₖ/νₖ) < atol + rtol*√(ξ₀/ν₀) ` or `ξₖ < 0` and `√(-ξₖ/νₖ) < neg_tol` where ξₖ := f(xₖ) + h(xₖ) - φ(sₖ; xₖ) - ψ(sₖ; xₖ), and √(ξₖ/νₖ) is a stationarity measure.
0 commit comments