@@ -21,6 +21,7 @@ mutable struct R2Solver{
2121 Fobj_hist:: Vector{R}
2222 Hobj_hist:: Vector{R}
2323 Complex_hist:: Vector{Int}
24+ Time_hist:: Vector{R}
2425end
2526
2627function R2Solver (
@@ -46,6 +47,7 @@ function R2Solver(
4647 end
4748 Fobj_hist = zeros (R, maxIter + 2 )
4849 Hobj_hist = zeros (R, maxIter + 2 )
50+ Time_hist = zeros (R, maxIter + 2 )
4951 Complex_hist = zeros (Int, maxIter + 2 )
5052 return R2Solver (
5153 xk,
@@ -62,6 +64,7 @@ function R2Solver(
6264 Fobj_hist,
6365 Hobj_hist,
6466 Complex_hist,
67+ Time_hist,
6568 )
6669end
6770
@@ -87,6 +90,7 @@ function R2Solver(reg_nlp::AbstractRegularizedNLPModel{T, V}; max_iter::Int = 10
8790 end
8891 Fobj_hist = zeros (T, max_iter + 2 )
8992 Hobj_hist = zeros (T, max_iter + 2 )
93+ Time_hist = zeros (T, max_iter + 2 )
9094 Complex_hist = zeros (Int, max_iter + 2 )
9195
9296 ψ =
@@ -107,6 +111,7 @@ function R2Solver(reg_nlp::AbstractRegularizedNLPModel{T, V}; max_iter::Int = 10
107111 Fobj_hist,
108112 Hobj_hist,
109113 Complex_hist,
114+ Time_hist,
110115 )
111116end
112117
@@ -201,6 +206,7 @@ function R2(
201206 ν = options. ν,
202207 γ = options. γ,
203208 )
209+ return stats
204210end
205211
206212function R2 (
@@ -232,6 +238,7 @@ function R2(
232238 outdict = Dict (
233239 :Fhist => stats. solver_specific[:Fhist ],
234240 :Hhist => stats. solver_specific[:Hhist ],
241+ :Time_hist => stats. solver_specific[:Time_hist ],
235242 :Chist => stats. solver_specific[:SubsolverCounter ],
236243 :NonSmooth => h,
237244 :status => stats. status,
@@ -274,6 +281,7 @@ function R2(
274281 outdict = Dict (
275282 :Fhist => stats. solver_specific[:Fhist ],
276283 :Hhist => stats. solver_specific[:Hhist ],
284+ :Time_hist => stats. solver_specific[:Time_hist ],
277285 :Chist => stats. solver_specific[:SubsolverCounter ],
278286 :NonSmooth => h,
279287 :status => stats. status,
@@ -295,10 +303,12 @@ function R2(reg_nlp::AbstractRegularizedNLPModel; kwargs...)
295303 solver. Fobj_hist[stats. iter + 1 ] = stats. solver_specific[:smooth_obj ]
296304 solver. Hobj_hist[stats. iter + 1 ] = stats. solver_specific[:nonsmooth_obj ]
297305 solver. Complex_hist[stats. iter + 1 ] += 1
306+ solver. Time_hist[stats. iter + 1 ] = stats. elapsed_time
298307 end
299308 solve! (solver, reg_nlp, stats; callback = cb, max_iter = max_iter, kwargs... )
300309 set_solver_specific! (stats, :Fhist , solver. Fobj_hist[1 : (stats. iter + 1 )])
301310 set_solver_specific! (stats, :Hhist , solver. Hobj_hist[1 : (stats. iter + 1 )])
311+ set_solver_specific! (stats, :Time_hist , solver. Time_hist[1 : (stats. iter + 1 )])
302312 set_solver_specific! (stats, :SubsolverCounter , solver. Complex_hist[1 : (stats. iter + 1 )])
303313 return stats
304314end
0 commit comments