Skip to content

Commit 60cfd2b

Browse files
committed
🤖 Format .jl files
1 parent 11e2a62 commit 60cfd2b

File tree

3 files changed

+50
-45
lines changed

3 files changed

+50
-45
lines changed

src/R2DH.jl

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -35,39 +35,39 @@ The objective and gradient of `nlp` will be accessed.
3535
The value returned is a `GenericExecutionStats`, see `SolverCore.jl`.
3636
"""
3737
function R2DH(
38-
nlp::AbstractDiagonalQNModel{R, S},
38+
nlp::AbstractDiagonalQNModel{R, S},
39+
h,
40+
options::ROSolverOptions{R};
41+
kwargs...,
42+
) where {R <: Real, S}
43+
kwargs_dict = Dict(kwargs...)
44+
x0 = pop!(kwargs_dict, :x0, nlp.meta.x0)
45+
xk, k, outdict = R2DH(
46+
x -> obj(nlp, x),
47+
(g, x) -> grad!(nlp, x, g),
3948
h,
40-
options::ROSolverOptions{R};
49+
hess_op(nlp, x0),
50+
options,
51+
x0;
52+
l_bound = nlp.meta.lvar,
53+
u_bound = nlp.meta.uvar,
4154
kwargs...,
42-
) where {R <: Real, S}
43-
kwargs_dict = Dict(kwargs...)
44-
x0 = pop!(kwargs_dict, :x0, nlp.meta.x0)
45-
xk, k, outdict = R2DH(
46-
x -> obj(nlp, x),
47-
(g, x) -> grad!(nlp, x, g),
48-
h,
49-
hess_op(nlp, x0),
50-
options,
51-
x0;
52-
l_bound = nlp.meta.lvar,
53-
u_bound = nlp.meta.uvar,
54-
kwargs...,
55-
)
56-
sqrt_ξ_νInv = outdict[:sqrt_ξ_νInv]
57-
stats = GenericExecutionStats(nlp)
58-
set_status!(stats, outdict[:status])
59-
set_solution!(stats, xk)
60-
set_objective!(stats, outdict[:fk] + outdict[:hk])
61-
set_residuals!(stats, zero(eltype(xk)), sqrt_ξ_νInv)
62-
set_iter!(stats, k)
63-
set_time!(stats, outdict[:elapsed_time])
64-
set_solver_specific!(stats, :Fhist, outdict[:Fhist])
65-
set_solver_specific!(stats, :Hhist, outdict[:Hhist])
66-
set_solver_specific!(stats, :Time_hist, outdict[:Time_hist])
67-
set_solver_specific!(stats, :NonSmooth, outdict[:NonSmooth])
68-
set_solver_specific!(stats, :SubsolverCounter, outdict[:Chist])
69-
return stats
70-
end
55+
)
56+
sqrt_ξ_νInv = outdict[:sqrt_ξ_νInv]
57+
stats = GenericExecutionStats(nlp)
58+
set_status!(stats, outdict[:status])
59+
set_solution!(stats, xk)
60+
set_objective!(stats, outdict[:fk] + outdict[:hk])
61+
set_residuals!(stats, zero(eltype(xk)), sqrt_ξ_νInv)
62+
set_iter!(stats, k)
63+
set_time!(stats, outdict[:elapsed_time])
64+
set_solver_specific!(stats, :Fhist, outdict[:Fhist])
65+
set_solver_specific!(stats, :Hhist, outdict[:Hhist])
66+
set_solver_specific!(stats, :Time_hist, outdict[:Time_hist])
67+
set_solver_specific!(stats, :NonSmooth, outdict[:NonSmooth])
68+
set_solver_specific!(stats, :SubsolverCounter, outdict[:Chist])
69+
return stats
70+
end
7171

7272
"""
7373
R2DH(f, ∇f!, h, options, x0)
@@ -169,11 +169,11 @@ function R2DH(
169169
s = zero(xk)
170170
ψ = has_bnds ? shifted(h, xk, l_bound - xk, u_bound - xk, selected) : shifted(h, xk)
171171

172-
Fobj_hist = zeros(maxIter+1)
173-
Hobj_hist = zeros(maxIter+1)
174-
time_hist = zeros(maxIter+1)
172+
Fobj_hist = zeros(maxIter + 1)
173+
Hobj_hist = zeros(maxIter + 1)
174+
time_hist = zeros(maxIter + 1)
175175
FHobj_hist = fill!(Vector{R}(undef, Mmonotone - 1), R(-Inf))
176-
Complex_hist = zeros(Int, maxIter+1)
176+
Complex_hist = zeros(Int, maxIter + 1)
177177
if verbose > 0
178178
#! format: off
179179
@info @sprintf "%6s %8s %8s %7s %8s %7s %7s %7s %1s" "iter" "f(x)" "h(x)" "√(ξ/ν)" "ρ" "σ" "‖x‖" "‖s‖" ""
@@ -265,7 +265,7 @@ function R2DH(
265265
shift!(ψ, xk)
266266
∇f!(∇fk, xk)
267267
push!(D, s, ∇fk - ∇fk⁻) # update QN operator
268-
DNorm = norm(D.d, Inf)
268+
DNorm = norm(D.d, Inf)
269269
∇fk⁻ .= ∇fk
270270
end
271271

@@ -275,7 +275,7 @@ function R2DH(
275275

276276
Dkσk .= D.d .+ σk
277277
ν = 1 / ((DNorm + σk) * (1 + θ))
278-
278+
279279
tired = maxIter > 0 && k maxIter
280280
if !tired
281281
@. mν∇fk = -ν * ∇fk

src/R2N.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ function R2N(
5151
subsolver_logger::Logging.AbstractLogger = Logging.NullLogger(),
5252
subsolver = R2,
5353
subsolver_options = ROSolverOptions(ϵa = options.ϵa),
54-
Mmonotone::Int = 1,
54+
Mmonotone::Int = 1,
5555
selected::AbstractVector{<:Integer} = 1:(f.meta.nvar),
5656
) where {H, R}
5757
start_time = time()
@@ -144,14 +144,14 @@ function R2N(
144144
elapsed_time = time() - start_time
145145
Fobj_hist[k] = fk
146146
Hobj_hist[k] = hk
147-
Mmonotone > 1 && (FHobj_hist[mod(k-1, Mmonotone - 1) + 1] = fk + hk)
147+
Mmonotone > 1 && (FHobj_hist[mod(k - 1, Mmonotone - 1) + 1] = fk + hk)
148148

149149
# model for first prox-gradient step and ξ1
150150
φ1(d) = ∇fk' * d
151151
mk1(d) = φ1(d) + ψ(d)
152152

153153
# model for subsequent prox-gradient steps and ξ
154-
φ(d) = ∇fk' * d + dot(d, Bk * d) / 2 + σk * dot(d, d) / 2
154+
φ(d) = ∇fk' * d + dot(d, Bk * d) / 2 + σk * dot(d, d) / 2
155155

156156
∇φ!(g, d) = begin
157157
mul!(g, Bk, d)
@@ -184,7 +184,7 @@ function R2N(
184184
end
185185
s1 = copy(s)
186186

187-
subsolver_options.ϵa = k == 1 ? 1.0e-3 : min(sqrt_ξ1_νInv ^ (1.5) , sqrt_ξ1_νInv * 1e-3)
187+
subsolver_options.ϵa = k == 1 ? 1.0e-3 : min(sqrt_ξ1_νInv^(1.5), sqrt_ξ1_νInv * 1e-3)
188188
verbose > 0 && @debug "setting inner stopping tolerance to" subsolver_options.optTol
189189
subsolver_options.σk = σk
190190
subsolver_args = subsolver == R2DH ? (SpectralGradient(νInv, f.meta.nvar),) : ()
@@ -291,4 +291,4 @@ function R2N(
291291
set_solver_specific!(stats, :NonSmooth, h)
292292
set_solver_specific!(stats, :SubsolverCounter, Complex_hist[1:k])
293293
return stats
294-
end
294+
end

test/runtests.jl

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,12 +135,17 @@ for (h, h_name) ∈ ((NormL1(λ), "l1"),)
135135
end
136136

137137
R2N_R2DH(args...; kwargs...) = R2N(args...; subsolver = R2DH, kwargs...)
138-
for (mod, mod_name) ((SpectralGradientModel, "spg"), (DiagonalPSBModel, "psb"), (LSR1Model, "lsr1"), (LBFGSModel, "lbfgs"))
138+
for (mod, mod_name) (
139+
(SpectralGradientModel, "spg"),
140+
(DiagonalPSBModel, "psb"),
141+
(LSR1Model, "lsr1"),
142+
(LBFGSModel, "lbfgs"),
143+
)
139144
for (h, h_name) ((NormL0(λ), "l0"), (NormL1(λ), "l1"))
140145
for solver_sym (:R2DH, :R2N, :R2N_R2DH)
141-
solver_sym (:R2N,:R2N_R2DH) && mod_name ("spg", "psb") && continue
146+
solver_sym (:R2N, :R2N_R2DH) && mod_name ("spg", "psb") && continue
142147
solver_sym == :R2DH && mod_name != "spg" && continue
143-
solver_sym == :R2N_R2DH && h_name == "l1" && continue # this test seems to fail because s seems to be equal to zeros within the subsolver
148+
solver_sym == :R2N_R2DH && h_name == "l1" && continue # this test seems to fail because s seems to be equal to zeros within the subsolver
144149
solver_name = string(solver_sym)
145150
solver = eval(solver_sym)
146151
@testset "bpdn-$(mod_name)-$(solver_name)-$(h_name)" begin

0 commit comments

Comments
 (0)