File tree Expand file tree Collapse file tree 4 files changed +6
-8
lines changed Expand file tree Collapse file tree 4 files changed +6
-8
lines changed Original file line number Diff line number Diff line change @@ -1087,8 +1087,8 @@ qp_solve( //
10871087 qpresults.info .rho = rho_new;
10881088 }
10891089 if (is_dual_feasible) {
1090- if (qpresults.info .duality_gap <=
1091- qpsettings.eps_abs * rhs_duality_gap) {
1090+ if (qpresults.info .duality_gap <= qpsettings. eps_abs +
1091+ ( qpsettings.eps_abs + qpsettings. eps_rel ) * rhs_duality_gap) {
10921092 qpresults.info .status = QPSolverOutput::PROXQP_SOLVED;
10931093 break ;
10941094 }
@@ -1169,8 +1169,8 @@ qp_solve( //
11691169 std::max (dual_feasibility_rhs_1, qpwork.dual_feasibility_rhs_2 )));
11701170
11711171 if (is_dual_feasible) {
1172- if (qpresults.info .duality_gap <=
1173- qpsettings.eps_abs * rhs_duality_gap) {
1172+ if (qpresults.info .duality_gap <= qpsettings. eps_abs +
1173+ ( qpsettings.eps_abs + qpsettings. eps_rel ) * rhs_duality_gap) {
11741174 qpresults.info .status = QPSolverOutput::PROXQP_SOLVED;
11751175 break ;
11761176 }
Original file line number Diff line number Diff line change @@ -415,7 +415,6 @@ global_dual_residual(const Results<T>& qpresults,
415415 duality_gap += zl;
416416 ruiz.scale_dual_in_place_in (VectorViewMut<T>{ from_eigen, qpresults.z });
417417 duality_gap /= sqrt_max_dim; // in order to get an a-dimensional duality gap
418- rhs_duality_gap += 1 .;
419418}
420419
421420} // namespace dense
Original file line number Diff line number Diff line change @@ -839,7 +839,7 @@ qp_solve(Results<T>& results,
839839 }
840840 if (is_primal_feasible (primal_feasibility_lhs) &&
841841 is_dual_feasible (dual_feasibility_lhs)) {
842- if (results.info .duality_gap <= settings.eps_abs * rhs_duality_gap) {
842+ if (results.info .duality_gap <= settings.eps_abs + (settings. eps_rel +settings. eps_abs ) * rhs_duality_gap) {
843843 results.info .pri_res = primal_feasibility_lhs;
844844 results.info .dua_res = dual_feasibility_lhs;
845845 results.info .status = QPSolverOutput::PROXQP_SOLVED;
@@ -1230,7 +1230,7 @@ qp_solve(Results<T>& results,
12301230
12311231 if (is_primal_feasible (primal_feasibility_lhs_new) &&
12321232 is_dual_feasible (dual_feasibility_lhs_new)) {
1233- if (results.info .duality_gap <= settings.eps_abs * rhs_duality_gap) {
1233+ if (results.info .duality_gap <= settings.eps_abs + (settings. eps_abs +settings. eps_rel ) * rhs_duality_gap) {
12341234 results.info .pri_res = primal_feasibility_lhs_new;
12351235 results.info .dua_res = dual_feasibility_lhs_new;
12361236 results.info .status = QPSolverOutput::PROXQP_SOLVED;
Original file line number Diff line number Diff line change @@ -678,7 +678,6 @@ unscaled_primal_dual_residual(
678678 precond.scale_dual_in_place_in ({ proxsuite::proxqp::from_eigen, z_e });
679679 results.info .duality_gap /=
680680 sqrt_max_dim; // in order to get an a-dimensional duality gap
681- rhs_duality_gap += 1 .;
682681 }
683682
684683 {
You can’t perform that action at this time.
0 commit comments