Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion src/RegularizedOptimization.jl
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,12 @@ using Arpack, ProximalOperators

# dependencies from us
using LinearOperators,
ManualNLPModels, NLPModels, NLPModelsModifiers, RegularizedProblems, ShiftedProximalOperators, SolverCore
ManualNLPModels,
NLPModels,
NLPModelsModifiers,
RegularizedProblems,
ShiftedProximalOperators,
SolverCore
using Percival: AugLagModel, update_y!, update_μ!

const callback_docstring = "
Expand Down
2 changes: 1 addition & 1 deletion src/TRDH_alg.jl
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ function TRDH(
selected::AbstractVector{<:Integer} = 1:length(x0),
kwargs...,
) where {R <: Real, F, G, H, DQN <: AbstractDiagonalQuasiNewtonOperator, X}
nlp = NLPModel(x0, f, grad=∇f!)
nlp = NLPModel(x0, f, grad = ∇f!)
reg_nlp = RegularizedNLPModel(nlp, h, selected)
stats = TRDH(
reg_nlp;
Expand Down
6 changes: 4 additions & 2 deletions src/TR_alg.jl
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,9 @@ function TRSolver(
shifted(reg_nlp.h, xk, l_bound_m_x, u_bound_m_x, reg_nlp.selected) :
shifted(reg_nlp.h, xk, T(1), χ)

Bk = isa(reg_nlp.model, QuasiNewtonModel) ? hess_op(reg_nlp.model, xk) : hess_op!(reg_nlp.model, xk, similar(xk))
Bk =
isa(reg_nlp.model, QuasiNewtonModel) ? hess_op(reg_nlp.model, xk) :
hess_op!(reg_nlp.model, xk, similar(xk))
sub_nlp = R2NModel(Bk, ∇fk, zero(T), x0) #FIXME
subpb = RegularizedNLPModel(sub_nlp, ψ)
substats = RegularizedExecutionStats(subpb)
Expand Down Expand Up @@ -341,7 +343,7 @@ function SolverCore.solve!(
set_radius!(solver.subsolver.ψ, ∆_effective)
set_radius!(ψ, ∆_effective)
end
with_logger(subsolver_logger) do
with_logger(subsolver_logger) do
if isa(solver.subsolver, TRDHSolver) #FIXME
solver.subsolver.D.d[1] = 1/ν₁
solve!(
Expand Down
19 changes: 12 additions & 7 deletions test/test_allocs.jl
Original file line number Diff line number Diff line change
Expand Up @@ -42,21 +42,26 @@ end
# Test non allocating solve!
@testset "allocs" begin
for (h, h_name) ∈ ((NormL0(λ), "l0"),)
for (solver, solver_name) ∈ ((:R2Solver, "R2"), (:R2DHSolver, "R2DH"), (:R2NSolver, "R2N"), (:TRDHSolver, "TRDH"), (:TRSolver, "TR"))
for (solver, solver_name) ∈ (
(:R2Solver, "R2"),
(:R2DHSolver, "R2DH"),
(:R2NSolver, "R2N"),
(:TRDHSolver, "TRDH"),
(:TRSolver, "TR"),
)
@testset "$(solver_name)" begin
(solver_name == "R2N" || solver_name == "TR") && continue #FIXME
reg_nlp = RegularizedNLPModel(LBFGSModel(bpdn), h)
solver = eval(solver)(reg_nlp)
stats = RegularizedExecutionStats(reg_nlp)
solver_name == "R2" && @test @wrappedallocs(
solve!(solver, reg_nlp, stats, ν = 1.0, atol = 1e-6, rtol = 1e-6)
) == 0
solver_name == "R2" &&
@test @wrappedallocs(solve!(solver, reg_nlp, stats, ν = 1.0, atol = 1e-6, rtol = 1e-6)) ==
0
solver_name == "R2DH" && @test @wrappedallocs(
solve!(solver, reg_nlp, stats, σk = 1.0, atol = 1e-6, rtol = 1e-6)
) == 0
solver_name == "TRDH" && @test @wrappedallocs(
solve!(solver, reg_nlp, stats, atol = 1e-6, rtol = 1e-6)
) == 0
solver_name == "TRDH" &&
@test @wrappedallocs(solve!(solver, reg_nlp, stats, atol = 1e-6, rtol = 1e-6)) == 0
@test stats.status == :first_order
end
end
Expand Down