Skip to content

Commit 73836e7

Browse files
implement SolverCore.reset!(solver) functions
1 parent 302a7b9 commit 73836e7

4 files changed

Lines changed: 27 additions & 6 deletions

File tree

src/R2DH.jl

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,12 @@ function R2DHSolver(
8181
)
8282
end
8383

84+
function SolverCore.reset!(solver::R2DHSolver)
85+
LinearOperators.reset!(solver.D)
86+
end
87+
88+
SolverCore.reset!(solver::R2DHSolver, model) = SolverCore.reset!(solver)
89+
8490
"""
8591
R2DH(reg_nlp; kwargs…)
8692
@@ -234,7 +240,6 @@ function SolverCore.solve!(
234240
compute_grad::Bool = true,
235241
) where {T, V}
236242
reset!(stats)
237-
LinearOperators.reset!(reg_nlp.model)
238243

239244
# Retrieve workspace
240245
selected = reg_nlp.selected

src/R2N.jl

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,13 @@ function R2NSolver(
9696
)
9797
end
9898

99+
function SolverCore.reset!(solver::R2NSolver)
100+
_reset_power_method!(solver.v0)
101+
LinearOperators.reset!(solver.subpb.model.B)
102+
end
103+
104+
SolverCore.reset!(solver::R2NSolver, model) = SolverCore.reset!(solver)
105+
99106
"""
100107
R2N(reg_nlp; kwargs…)
101108
@@ -225,8 +232,6 @@ function SolverCore.solve!(
225232
sub_kwargs::NamedTuple = NamedTuple(),
226233
) where {T, V, G}
227234
reset!(stats)
228-
_reset_power_method!(solver.v0)
229-
LinearOperators.reset!(reg_nlp.model)
230235

231236
# Retrieve workspace
232237
selected = reg_nlp.selected

src/TRDH_alg.jl

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,12 @@ function TRDHSolver(
9090
)
9191
end
9292

93+
function SolverCore.reset!(solver::TRDHSolver)
94+
LinearOperators.reset!(solver.D)
95+
end
96+
97+
SolverCore.reset!(solver::TRDHSolver, model) = SolverCore.reset!(solver)
98+
9399
"""
94100
TRDH(reg_nlp; kwargs…)
95101
TRDH(nlp, h, χ, options; kwargs...)
@@ -247,7 +253,6 @@ function SolverCore.solve!(
247253
compute_grad::Bool = true,
248254
) where {T, G, V}
249255
reset!(stats)
250-
LinearOperators.reset!(reg_nlp.model)
251256

252257
# Retrieve workspace
253258
selected = reg_nlp.selected

src/TR_alg.jl

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,14 @@ function TRSolver(
9595
)
9696
end
9797

98+
function SolverCore.reset!(solver::TRSolver)
99+
_reset_power_method!(solver.v0)
100+
LinearOperators.reset!(solver.subpb.model.B)
101+
end
102+
103+
SolverCore.reset!(solver::TRSolver, model) = SolverCore.reset!(solver)
104+
105+
98106
"""
99107
TR(reg_nlp; kwargs…)
100108
TR(nlp, h, χ, options; kwargs...)
@@ -219,8 +227,6 @@ function SolverCore.solve!(
219227
compute_grad::Bool = true,
220228
) where {T, G, V}
221229
reset!(stats)
222-
_reset_power_method!(solver.v0)
223-
LinearOperators.reset!(reg_nlp.model)
224230

225231
# Retrieve workspace
226232
selected = reg_nlp.selected

0 commit comments

Comments
 (0)