@@ -115,7 +115,7 @@ function LMTR(
115115
116116 if verbose > 0
117117 # ! format: off
118- @info @sprintf " %6s %8s %8s %8s %7s %7s %8s %7s %7s %7s %7s %1s" " outer" " inner" " f(x)" " h(x)" " √ξ1" " √ξ" " ρ" " Δ" " ‖x‖" " ‖s‖" " 1/ ν" " TR"
118+ @info @sprintf " %6s %8s %8s %8s %7s %7s %8s %7s %7s %7s %7s %1s" " outer" " inner" " f(x)" " h(x)" " √ξ1" " √ξ" " ρ" " Δ" " ‖x‖" " ‖s‖" " ν" " TR"
119119 # ! format: on
120120 end
121121
@@ -132,9 +132,9 @@ function LMTR(
132132
133133 σmax, found_σ = opnorm (Jk)
134134 found_σ || error (" operator norm computation failed" )
135- νInv = ( 1 + θ) * σmax^ 2 # ‖J'J‖ = ‖J‖²
135+ ν = θ / σmax^ 2 # ‖J'J‖ = ‖J‖²
136136
137- mν∇fk = - ∇fk / νInv
137+ mν∇fk = - ∇fk * ν
138138
139139 optimal = false
140140 tired = k ≥ maxIter || elapsed_time > maxTime
@@ -174,8 +174,8 @@ function LMTR(
174174
175175 # Take first proximal gradient step s1 and see if current xk is nearly stationary.
176176 # s1 minimizes φ1(d) + ‖d‖² / 2 / ν + ψ(d) ⟺ s1 ∈ prox{νψ}(-ν∇φ1(0))
177- ν = 1 / (νInv + 1 / (Δk * α))
178- prox! (s, ψ, mν∇fk, ν )
177+ ν1 = 1 / (1 / ν + 1 / (Δk * α))
178+ prox! (s, ψ, mν∇fk, ν1 )
179179 ξ1 = fk + hk - mk1 (s) + max (1 , abs (fk + hk)) * 10 * eps ()
180180 ξ1 > 0 || error (" LMTR: first prox-gradient step should produce a decrease but ξ1 = $(ξ1) " )
181181
@@ -197,8 +197,8 @@ function LMTR(
197197 set_bounds! (ψ, max .(- ∆_effective, l_bound - xk), min .(∆_effective, u_bound - xk)) :
198198 set_radius! (ψ, ∆_effective)
199199 subsolver_options. Δk = ∆_effective / 10
200- subsolver_options. ν = ν
201- subsolver_args = subsolver == TRDH ? (SpectralGradient (1 / ν , nls. meta. nvar),) : ()
200+ subsolver_options. ν = ν1
201+ subsolver_args = subsolver == TRDH ? (SpectralGradient (1 / ν1 , nls. meta. nvar),) : ()
202202 s, iter, _ = with_logger (subsolver_logger) do
203203 subsolver (φ, ∇φ!, ψ, subsolver_args... , subsolver_options, s)
204204 end
@@ -232,7 +232,7 @@ function LMTR(
232232
233233 if (verbose > 0 ) && (k % ptf == 0 )
234234 # ! format: off
235- @info @sprintf " %6d %8d %8.1e %8.1e %7.1e %7.1e %8.1e %7.1e %7.1e %7.1e %7.1e %1s" k iter fk hk sqrt (ξ1) sqrt (ξ) ρk ∆_effective χ (xk) sNorm νInv TR_stat
235+ @info @sprintf " %6d %8d %8.1e %8.1e %7.1e %7.1e %8.1e %7.1e %7.1e %7.1e %7.1e %1s" k iter fk hk sqrt (ξ1) sqrt (ξ) ρk ∆_effective χ (xk) sNorm ν TR_stat
236236 # ! format: on
237237 end
238238
@@ -255,8 +255,8 @@ function LMTR(
255255 jtprod_residual! (nls, xk, Fk, ∇fk)
256256 σmax, found_σ = opnorm (Jk)
257257 found_σ || error (" operator norm computation failed" )
258- νInv = ( 1 + θ) * σmax^ 2 # ‖J'J‖ = ‖J‖²
259- @. mν∇fk = - ∇fk / νInv
258+ ν = θ / σmax^ 2 # ‖J'J‖ = ‖J‖²
259+ @. mν∇fk = - ∇fk * ν
260260 end
261261
262262 if ρk < η1 || ρk == Inf
@@ -273,7 +273,7 @@ function LMTR(
273273 @info @sprintf " %6d %8s %8.1e %8.1e" k " " fk hk
274274 elseif optimal
275275 # ! format: off
276- @info @sprintf " %6d %8d %8.1e %8.1e %7.1e %7.1e %8s %7.1e %7.1e %7.1e %7.1e" k 1 fk hk sqrt (ξ1) sqrt (ξ1) " " Δk χ (xk) χ (s) νInv
276+ @info @sprintf " %6d %8d %8.1e %8.1e %7.1e %7.1e %8s %7.1e %7.1e %7.1e %7.1e" k 1 fk hk sqrt (ξ1) sqrt (ξ1) " " Δk χ (xk) χ (s) ν
277277 # ! format: on
278278 @info " LMTR: terminating with √ξ1 = $(sqrt (ξ1)) "
279279 end
0 commit comments