Skip to content

Conversation

@Lucas-Haubert
Copy link
Contributor

@Lucas-Haubert Lucas-Haubert commented Nov 22, 2025

This PR solves the unit test ProxQP::dense: test primal infeasibility solving with Eigen5.

In particular, the update of the PROXQP_SOLVED_CLOSEST_FEASIBLE status was not followed by a break, making the outer loop keep going until max iteration.
In that case, the unit test was passing, by chance, with Eigen3, but no longer with Eigen5 (due to a little difference in the number of iterations between the two versions).

Pros of the PR:

  • Correction of the PROXQP_SOLVED_CLOSEST_FEASIBLE status logic,
  • When the problem is primal infeasible, and qp.settings.primal_infeasibility_solving = true;, we reduce the computation time (up to a factor 1000, for example when qp.settings.max_iter = 10000 and the problem is solved with qp.results.info.iter_ext = 10). Also, the solution is exact (in terms of qp.results.info.pri_res and qp.results.info.dua_res).

Copy link
Collaborator

@fabinsch fabinsch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

great work @Lucas-Haubert !

@jorisv jorisv force-pushed the fix/proxqp_solved_closest_primal_feasible branch from a16f01d to 79c078c Compare November 24, 2025 12:39
@jorisv jorisv enabled auto-merge November 24, 2025 12:40
@jorisv jorisv merged commit 17da7c2 into Simple-Robotics:devel Nov 24, 2025
84 checks passed
@jorisv jorisv mentioned this pull request Nov 24, 2025
nim65s added a commit to nim65s/proxsuite that referenced this pull request Nov 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants