@@ -225,14 +225,9 @@ function SolverCore.solve!(
225225 has_bnds = solver. has_bnds
226226
227227 if has_bnds || isa (solver. subsolver, TRDHSolver) # TODO elsewhere ?
228- l_bound_m_x = solver. l_bound_m_x
229- u_bound_m_x = solver. u_bound_m_x
230- l_bound = solver. l_bound
231- u_bound = solver. u_bound
232- @. l_bound_m_x = l_bound - xk
233- @. u_bound_m_x = u_bound - xk
234- @. l_bound_m_x .= max .(l_bound_m_x, - Δk)
235- @. u_bound_m_x .= min .(u_bound_m_x, Δk)
228+ l_bound_m_x, u_bound_m_x = solver. l_bound_m_x, solver. u_bound_m_x
229+ l_bound, u_bound = solver. l_bound, solver. u_bound
230+ update_bounds! (l_bound_m_x, u_bound_m_x, false , l_bound, u_bound, xk, Δk)
236231 set_bounds! (ψ, l_bound_m_x, u_bound_m_x)
237232 set_bounds! (solver. subsolver. ψ, l_bound_m_x, u_bound_m_x)
238233 else
@@ -342,10 +337,7 @@ function SolverCore.solve!(
342337 ∆_effective = min (β * χ (s), Δk)
343338
344339 if has_bnds || isa (solver. subsolver, TRDHSolver) # TODO elsewhere ?
345- @. l_bound_m_x = l_bound - xk
346- @. u_bound_m_x = u_bound - xk
347- @. l_bound_m_x .= max .(l_bound_m_x, - ∆_effective)
348- @. u_bound_m_x .= min .(u_bound_m_x, ∆_effective)
340+ update_bounds! (l_bound_m_x, u_bound_m_x, false , l_bound, u_bound, xk, Δk)
349341 set_bounds! (ψ, l_bound_m_x, u_bound_m_x)
350342 set_bounds! (solver. subsolver. ψ, l_bound_m_x, u_bound_m_x)
351343 else
@@ -420,10 +412,7 @@ function SolverCore.solve!(
420412 if η1 ≤ ρk < Inf
421413 xk .= xkn
422414 if has_bnds || isa (solver. subsolver, TRDHSolver)
423- @. l_bound_m_x = l_bound - xk
424- @. u_bound_m_x = u_bound - xk
425- @. l_bound_m_x .= max .(l_bound_m_x, - Δk)
426- @. u_bound_m_x .= min .(u_bound_m_x, Δk)
415+ update_bounds! (l_bound_m_x, u_bound_m_x, false , l_bound, u_bound, xk, Δk)
427416 set_bounds! (ψ, l_bound_m_x, u_bound_m_x)
428417 set_bounds! (solver. subsolver. ψ, l_bound_m_x, u_bound_m_x)
429418 end
@@ -447,10 +436,7 @@ function SolverCore.solve!(
447436 if ρk < η1 || ρk == Inf
448437 Δk = Δk / 2
449438 if has_bnds || isa (solver. subsolver, TRDHSolver)
450- @. l_bound_m_x = l_bound - xk
451- @. u_bound_m_x = u_bound - xk
452- @. l_bound_m_x .= max .(l_bound_m_x, - Δk)
453- @. u_bound_m_x .= min .(u_bound_m_x, Δk)
439+ update_bounds! (l_bound_m_x, u_bound_m_x, false , l_bound, u_bound, xk, Δk)
454440 set_bounds! (ψ, l_bound_m_x, u_bound_m_x)
455441 set_bounds! (solver. subsolver. ψ, l_bound_m_x, u_bound_m_x)
456442 else
0 commit comments