Skip to content

Conversation

@jslee02
Copy link
Member

@jslee02 jslee02 commented Dec 15, 2025

This PR refactors DART\x27s LCP solver stack and updates docs/tests accordingly.

Highlights:

  • Consolidate LCP infrastructure under dart/math/lcp (problem/options/result + validation).
  • Implement/route solvers via the new dart::math::LcpSolver API (Dantzig, Lemke, PGS + relaxation).
  • Update constraint layer to use math LCP solvers and remove legacy boxed compatibility shims.
  • Refresh LCP background docs + selection guide.
  • Move/add unit tests + stress/bench coverage under tests/unit/math/lcp.

Notes:

  • The Gazebo/gz-physics patch script is intentionally limited to bumping the DART version requirement; compatibility should be maintained in DART or upstream in gz-physics.

# Conflicts:
#	dart/constraint/BoxedLcpConstraintSolver.cpp
#	dart/constraint/DantzigLCPSolver.cpp
#	dart/constraint/PGSLCPSolver.cpp
#	dart/math/lcp/All.hpp
#	dart/math/lcp/CMakeLists.txt
#	dart/math/lcp/ODELCPSolver.cpp
#	dart/math/lcp/pivoting/DantzigSolver.hpp
#	dart/math/lcp/pivoting/LemkeSolver.cpp
#	dart/math/lcp/pivoting/LemkeSolver.hpp
#	docs/onboarding/constraints.md
@jslee02 jslee02 added this to the DART 7.0 milestone Dec 17, 2025
@jslee02 jslee02 force-pushed the feature/lcp_solvers branch from 8e91aa4 to 5ca346f Compare December 20, 2025 02:06
@jslee02 jslee02 force-pushed the feature/lcp_solvers branch from 5ca346f to b6985e5 Compare December 20, 2025 19:02
@jslee02
Copy link
Member Author

jslee02 commented Dec 20, 2025

@codex review

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@@ -1,4 +1 @@
#pragma once

Choose a reason for hiding this comment

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

P1 Badge Preserve lcpsolver umbrella exports

The public umbrella header dart/lcpsolver/All.hpp now only contains #pragma once and no longer re-exports any solver definitions. Because dart/lcpsolver/lcpsolver.hpp just includes this file, any downstream code that previously relied on these headers (e.g., Lemke, ODELCPSolver, or the deprecated lcpsolver namespace) will now compile to an empty header and fail to find the expected types. This is a new regression from the commit; the pre-change version re-exported the legacy solvers. Please keep the deprecated includes (or forward to the new dart/math/lcp headers) so existing users don’t break.

Useful? React with 👍 / 👎.

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.

2 participants