Skip to content

Commit 2d7a82b

Browse files
Use std::fabs to evaluate duality gap
See #169 (comment)
1 parent 10c0805 commit 2d7a82b

File tree

4 files changed

+5
-5
lines changed

4 files changed

+5
-5
lines changed

include/proxsuite/proxqp/dense/solver.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1075,7 +1075,7 @@ qp_solve( //
10751075
}
10761076
if (is_primal_feasible && is_dual_feasible) {
10771077
if (qpsettings.check_duality_gap) {
1078-
if (std::abs(qpresults.info.duality_gap) <=
1078+
if (std::fabs(qpresults.info.duality_gap) <=
10791079
qpsettings.eps_duality_gap_abs +
10801080
qpsettings.eps_duality_gap_rel * rhs_duality_gap) {
10811081
qpresults.info.status = QPSolverOutput::PROXQP_SOLVED;
@@ -1162,7 +1162,7 @@ qp_solve( //
11621162

11631163
if (is_dual_feasible) {
11641164
if (qpsettings.check_duality_gap) {
1165-
if (std::abs(qpresults.info.duality_gap) <=
1165+
if (std::fabs(qpresults.info.duality_gap) <=
11661166
qpsettings.eps_duality_gap_abs +
11671167
qpsettings.eps_duality_gap_rel * rhs_duality_gap) {
11681168
qpresults.info.status = QPSolverOutput::PROXQP_SOLVED;

include/proxsuite/proxqp/dense/utils.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ global_dual_residual(Results<T>& qpresults,
358358

359359
ruiz.unscale_primal_in_place(VectorViewMut<T>{ from_eigen, qpresults.x });
360360
duality_gap = (qpmodel.g).dot(qpresults.x);
361-
rhs_duality_gap = std::abs(duality_gap);
361+
rhs_duality_gap = std::fabs(duality_gap);
362362
const T xHx = (qpwork.CTz).dot(qpresults.x);
363363
duality_gap += xHx; // contains now xHx+g.Tx
364364
rhs_duality_gap = std::max(rhs_duality_gap, std::abs(xHx));

include/proxsuite/proxqp/sparse/solver.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -843,7 +843,7 @@ qp_solve(Results<T>& results,
843843
if (is_primal_feasible(primal_feasibility_lhs) &&
844844
is_dual_feasible(dual_feasibility_lhs)) {
845845
if (settings.check_duality_gap) {
846-
if (std::abs(results.info.duality_gap) <=
846+
if (std::fabs(results.info.duality_gap) <=
847847
settings.eps_duality_gap_abs +
848848
settings.eps_duality_gap_rel * rhs_duality_gap) {
849849
results.info.pri_res = primal_feasibility_lhs;

include/proxsuite/proxqp/sparse/utils.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -649,7 +649,7 @@ unscaled_primal_dual_residual(
649649
dual_feasibility_rhs_0 = infty_norm(tmp);
650650
precond.unscale_primal_in_place({ proxqp::from_eigen, x_e });
651651
results.info.duality_gap = x_e.dot(data.g); // contains gTx
652-
rhs_duality_gap = std::abs(results.info.duality_gap);
652+
rhs_duality_gap = std::fabs(results.info.duality_gap);
653653

654654
const T xHx = (tmp).dot(x_e);
655655
results.info.duality_gap += xHx;

0 commit comments

Comments
 (0)