Expose MOSEK SDP solvers in MATLAB - #2805
Merged
Merged
Conversation
c9104b5c2 Convert numeric MATLAB STL containers to native values git-subtree-dir: wrap git-subtree-split: c9104b5c290f9a159b4eab15ac0b4844a1adc222
Base automatically changed from
codex/shared-homogeneous-coordinates
to
develop
September 16, 2026 22:45
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The MATLAB documentation overstates default sharing and the wrapper interface adds alias-only container names contrary to repository guidance.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Exposes optional MOSEK SDP solvers and container APIs to MATLAB while preserving Python-native containers, and fixes an Apple Clang template collision.
Changes:
- Adds shared MOSEK wrapper declarations and conditional CMake integration.
- Adds MATLAB documentation/tests and Python container/parameter tests.
- Renames a conflicting ProductLieGroup template parameter.
File summaries
| File | Description |
|---|---|
python/gtsam/tests/test_certifiable.py |
Tests native container returns and parameter dictionaries. |
python/CMakeLists.txt |
Enables native STL conversions for MOSEK bindings. |
matlab/README.md |
Documents MOSEK solver usage and container proxies. |
matlab/gtsam_tests/testMosekSDP.m |
Exercises MATLAB MOSEK solvers and sharing options. |
matlab/gtsam_tests/test_gtsam.m |
Registers the new MATLAB test. |
matlab/CMakeLists.txt |
Conditionally includes MOSEK interfaces. |
gtsam/certifiable/certifiable_mosek.i |
Declares MOSEK solvers and container wrappers. |
gtsam/base/ProductLieGroup.h |
Renames the template parameter. |
gtsam/base/ProductLieGroup-inl.h |
Updates the matching definition. |
.github/copilot-instructions.md |
Adds wrapper and build guidance. |
Review details
Suppressed comments (1)
gtsam/certifiable/certifiable_mosek.i:26
- These typedefs are wrapper-name scaffolding for the STL specializations rather than aliases useful to the C++ API. The repository wrapper guidance requires using the normal
.itemplate-instantiation mechanism instead of aliases solely to manufacture wrapper names; please remove this alias-based naming or document why the paired map specializations cannot be expressed that way.
typedef std::map<std::string, double> mapstringdouble;
typedef std::map<gtsam::Key, gtsam::DenseIndex> mapKeyDenseIndex;
- Files reviewed: 10/10 changed files
- Comments generated: 2
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Expose the MOSEK SDP solvers from #2802 in MATLAB, including the default-on homogeneous sharing option and its
falseopt-out.Python and MATLAB use the same
.ideclarations. MATLAB gets container proxies; Python keeps native lists and dictionaries through its existing ignore list. Also fixes an Apple Clang template-name collision that prevented the toolbox from building. No changes underwrap/.Validation: MATLAB R2025b
test_gtsamandtestEnum; Python MOSEK tests for sharing on/off, container returns, and dictionary parameters; MOSEK-disabled MATLAB generation. The ProductLieGroupGeometry, LiftedSDPs, and MosekSDP C++ suites also passed earlier in this PR.