@@ -296,6 +296,7 @@ function R2(reg_nlp::AbstractRegularizedNLPModel; kwargs...)
296296 solver. Fobj_hist[stats. iter + 1 ] = stats. solver_specific[:smooth_obj ]
297297 solver. Hobj_hist[stats. iter + 1 ] = stats. solver_specific[:nonsmooth_obj ]
298298 solver. Complex_hist[stats. iter + 1 ] += 1
299+ return false
299300 end ,
300301 )
301302 solve! (solver, reg_nlp, stats; callback = cb, max_iter = max_iter, kwargs... )
@@ -309,7 +310,7 @@ function SolverCore.solve!(
309310 solver:: R2Solver{T} ,
310311 reg_nlp:: AbstractRegularizedNLPModel{T, V} ,
311312 stats:: GenericExecutionStats{T, V} ;
312- callback = (args... ) -> nothing ,
313+ callback = (args... ) -> false ,
313314 x:: V = reg_nlp. model. meta. x0,
314315 atol:: T = √ eps (T),
315316 rtol:: T = √ eps (T),
@@ -413,12 +414,15 @@ function SolverCore.solve!(
413414 (ξ < 0 && sqrt_ξ_νInv > neg_tol) &&
414415 error (" R2: prox-gradient step should produce a decrease but ξ = $(ξ) " )
415416
417+ user_requested_exit = callback (nlp, solver, stats) :: Bool
418+
416419 set_status! (
417420 stats,
418421 get_status (
419422 reg_nlp,
420423 elapsed_time = stats. elapsed_time,
421424 iter = stats. iter,
425+ user_requested_exit = user_requested_exit,
422426 optimal = solved,
423427 improper = improper,
424428 max_eval = max_eval,
@@ -427,8 +431,6 @@ function SolverCore.solve!(
427431 ),
428432 )
429433
430- callback (nlp, solver, stats)
431-
432434 done = stats. status != :unknown
433435
434436 while ! done
@@ -497,12 +499,15 @@ function SolverCore.solve!(
497499 (ξ < 0 && sqrt_ξ_νInv > neg_tol) &&
498500 error (" R2: prox-gradient step should produce a decrease but ξ = $(ξ) " )
499501
502+ user_requested_exit = callback (nlp, solver, stats) :: Bool
503+
500504 set_status! (
501505 stats,
502506 get_status (
503507 reg_nlp,
504508 elapsed_time = stats. elapsed_time,
505509 iter = stats. iter,
510+ user_requested_exit = user_requested_exit,
506511 optimal = solved,
507512 improper = improper,
508513 max_eval = max_eval,
@@ -511,8 +516,6 @@ function SolverCore.solve!(
511516 ),
512517 )
513518
514- callback (nlp, solver, stats)
515-
516519 done = stats. status != :unknown
517520 end
518521
0 commit comments