@@ -148,7 +148,6 @@ function SolverCore.solve!(
148
148
[Int64, T, T, T, String, T, T, T],
149
149
)
150
150
verbose > 0 && @info log_row (Any[iter, ft, norm_∇f, 0.0 , " First iteration" , α])
151
-
152
151
callback (nlp, solver, stats)
153
152
154
153
while ! OK && (stats. status != :user )
@@ -177,7 +176,7 @@ function SolverCore.solve!(
177
176
178
177
if Δq < 0.0 # very unsucessful
179
178
verbose > 0 &&
180
- mod (iter, verbose) == 0 &&
179
+ mod (iter, verbose) == 0 &&
181
180
@info log_row (Any[iter, ft, norm_∇f, λ, " VU" , α, norm (d), Δq])
182
181
unsucc += 1
183
182
unsuccinarow += 1
@@ -188,7 +187,7 @@ function SolverCore.solve!(
188
187
α = min (decrease (PData, α, TR), max (TR. large_decrease_factor, αbad) * α)
189
188
elseif r < acceptance_threshold # unsucessful
190
189
verbose > 0 &&
191
- mod (iter, verbose) == 0 &&
190
+ mod (iter, verbose) == 0 &&
192
191
@info log_row (Any[iter, ft, norm_∇f, λ, " U" , α, norm (d), Δq])
193
192
unsucc += 1
194
193
unsuccinarow += 1
@@ -205,25 +204,23 @@ function SolverCore.solve!(
205
204
∇f = grad! (nlp, xt, workspace)
206
205
end
207
206
norm_∇f = norm (∇f)
208
-
209
- verysucc += 1
210
207
if r > increase_threshold # very sucessful
211
208
α = increase (PData, α, TR)
212
209
verbose > 0 &&
213
- mod (iter, verbose) == 0 &&
210
+ mod (iter, verbose) == 0 &&
214
211
@info log_row (Any[iter, ft, norm_∇f, λ, " V" , α, norm (d), Δq])
212
+ verysucc += 1
215
213
else # sucessful
216
214
if r < reduce_threshold
217
215
α = decrease (PData, α, TR)
218
216
end
219
- verbose > 0 &&
220
- mod (iter, verbose) == 0 &&
217
+ verbose > 0 &&
218
+ mod (iter, verbose) == 0 &&
221
219
@info log_row (Any[iter, ft, norm_∇f, λ, " S" , α, norm (d), Δq])
222
220
succ += 1
223
221
end
224
222
end
225
223
end # while !success
226
-
227
224
nlp_stop. meta. nb_of_stop = iter
228
225
set_x! (nlp_at_x, xt)
229
226
set_fx! (nlp_at_x, ft)
@@ -237,6 +234,9 @@ function SolverCore.solve!(
237
234
set_dual_residual! (stats, nlp_at_x. current_score)
238
235
set_iter! (stats, nlp_stop. meta. nb_of_stop)
239
236
set_time! (stats, nlp_at_x. current_time - nlp_stop. meta. start_time)
237
+ if unsuccinarow >= max_unsuccinarow
238
+ stats. status = :user
239
+ end
240
240
callback (nlp, solver, stats)
241
241
end # while !OK
242
242
0 commit comments