Skip to content

Expose MOSEK SDP solvers in MATLAB - #2805

Merged
dellaert merged 10 commits into
developfrom
codex/matlab-mosek-wrappers
Sep 17, 2026
Merged

dellaert merged 10 commits into
developfrom
codex/matlab-mosek-wrappers

Conversation

@dellaert

@dellaert dellaert commented Sep 16, 2026

Copy link
Copy Markdown
Member

Expose the MOSEK SDP solvers from #2802 in MATLAB, including the default-on homogeneous sharing option and its false opt-out.

Python and MATLAB use the same .i declarations. 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 under wrap/.

Validation: MATLAB R2025b test_gtsam and testEnum; 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.

Base automatically changed from codex/shared-homogeneous-coordinates to develop September 16, 2026 22:45

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 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 .i template-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.

Comment thread gtsam/certifiable/certifiable_mosek.i
Comment thread matlab/README.md Outdated
@dellaert
dellaert merged commit a82979b into develop Sep 17, 2026
7 checks passed
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