@@ -3,10 +3,10 @@ export R2DH, R2DHSolver, solve!
33import SolverCore. solve!
44
55mutable struct R2DHSolver{
6- T<: Real ,
7- G<: ShiftedProximableFunction ,
8- V<: AbstractVector{T} ,
9- QN<: AbstractDiagonalQuasiNewtonOperator{T} ,
6+ T <: Real ,
7+ G <: ShiftedProximableFunction ,
8+ V <: AbstractVector{T} ,
9+ QN <: AbstractDiagonalQuasiNewtonOperator{T} ,
1010} <: AbstractOptimizationSolver
1111 xk:: V
1212 ∇fk:: V
@@ -26,10 +26,10 @@ mutable struct R2DHSolver{
2626end
2727
2828function R2DHSolver (
29- reg_nlp:: AbstractRegularizedNLPModel{T,V} ;
29+ reg_nlp:: AbstractRegularizedNLPModel{T, V} ;
3030 m_monotone:: Int = 6 ,
31- D:: Union{Nothing,AbstractDiagonalQuasiNewtonOperator} = nothing ,
32- ) where {T,V}
31+ D:: Union{Nothing, AbstractDiagonalQuasiNewtonOperator} = nothing ,
32+ ) where {T, V}
3333 x0 = reg_nlp. model. meta. x0
3434 l_bound = reg_nlp. model. meta. lvar
3535 u_bound = reg_nlp. model. meta. uvar
@@ -151,11 +151,11 @@ Notably, you can access, and modify, the following:
151151 - `stats.elapsed_time`: elapsed time in seconds.
152152"""
153153function R2DH (
154- nlp:: AbstractDiagonalQNModel{T,V} ,
154+ nlp:: AbstractDiagonalQNModel{T, V} ,
155155 h,
156156 options:: ROSolverOptions{T} ;
157157 kwargs... ,
158- ) where {T,V}
158+ ) where {T, V}
159159 kwargs_dict = Dict (kwargs... )
160160 selected = pop! (kwargs_dict, :selected , 1 : (nlp. meta. nvar))
161161 x0 = pop! (kwargs_dict, :x0 , nlp. meta. x0)
@@ -188,7 +188,13 @@ function R2DH(
188188 x0:: AbstractVector{R} ;
189189 selected:: AbstractVector{<:Integer} = 1 : length (x0),
190190 kwargs... ,
191- ) where {F<: Function ,G<: Function ,H,R<: Real ,DQN<: AbstractDiagonalQuasiNewtonOperator }
191+ ) where {
192+ F <: Function ,
193+ G <: Function ,
194+ H,
195+ R <: Real ,
196+ DQN <: AbstractDiagonalQuasiNewtonOperator ,
197+ }
192198 nlp = FirstOrderModel (f, ∇f!, x0)
193199 reg_nlp = RegularizedNLPModel (nlp, h, selected)
194200 stats = R2DH (
@@ -213,7 +219,7 @@ function R2DH(
213219 return stats. solution, stats. iter, nothing
214220end
215221
216- function R2DH (reg_nlp:: AbstractRegularizedNLPModel{T,V} ; kwargs... ) where {T,V}
222+ function R2DH (reg_nlp:: AbstractRegularizedNLPModel{T, V} ; kwargs... ) where {T, V}
217223 kwargs_dict = Dict (kwargs... )
218224 m_monotone = pop! (kwargs_dict, :m_monotone , 6 )
219225 D = pop! (kwargs_dict, :D , nothing )
225231
226232function SolverCore. solve! (
227233 solver:: R2DHSolver{T} ,
228- reg_nlp:: AbstractRegularizedNLPModel{T,V} ,
229- stats:: GenericExecutionStats{T,V} ;
234+ reg_nlp:: AbstractRegularizedNLPModel{T, V} ,
235+ stats:: GenericExecutionStats{T, V} ;
230236 callback = (args... ) -> nothing ,
231237 x:: V = reg_nlp. model. meta. x0,
232238 atol:: T = √ eps (T),
@@ -242,7 +248,7 @@ function SolverCore.solve!(
242248 η2:: T = T (0.9 ),
243249 γ:: T = T (3 ),
244250 θ:: T = 1 / (1 + eps (T)^ (1 / 5 )),
245- ) where {T,V}
251+ ) where {T, V}
246252 reset! (stats)
247253
248254 # Retrieve workspace
@@ -292,7 +298,7 @@ function SolverCore.solve!(
292298 @info log_header (
293299 [:iter , :fx , :hx , :xi , :ρ , :σ , :normx , :norms , :arrow ],
294300 [Int, T, T, T, T, T, T, T, Char],
295- hdr_override = Dict {Symbol,String} ( # TODO : Add this as constant dict elsewhere
301+ hdr_override = Dict {Symbol, String} ( # TODO : Add this as constant dict elsewhere
296302 :fx => " f(x)" ,
297303 :hx => " h(x)" ,
298304 :xi => " √(ξ/ν)" ,
@@ -328,7 +334,7 @@ function SolverCore.solve!(
328334 set_solver_specific! (stats, :nonsmooth_obj , hk)
329335 set_solver_specific! (stats, :sigma , σk)
330336 set_solver_specific! (stats, :sigma_cauchy , 1 / ν₁)
331- m_monotone > 1 && (m_fh_hist[(stats. iter)% (m_monotone- 1 ) + 1 ] = fk + hk)
337+ m_monotone > 1 && (m_fh_hist[(stats. iter) % (m_monotone - 1 ) + 1 ] = fk + hk)
332338
333339 φ (d) = begin
334340 result = zero (T)
@@ -437,7 +443,7 @@ function SolverCore.solve!(
437443 ν₁ = θ / (DNorm + σk)
438444
439445 @. mν∇fk = - ν₁ * ∇fk
440- m_monotone > 1 && (m_fh_hist[stats. iter% (m_monotone- 1 ) + 1 ] = fk + hk)
446+ m_monotone > 1 && (m_fh_hist[stats. iter % (m_monotone - 1 ) + 1 ] = fk + hk)
441447
442448 spectral_test ? prox! (s, ψ, mν∇fk, ν₁) : iprox! (s, ψ, ∇fk, dkσk)
443449 mks = mk (s)
0 commit comments