Changelog
August 10, 2026 ยท View on GitHub
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
Unreleased
Fixed
- Initialize
active_set_upandactive_set_lowin denseWorkspace(#476)
Added
- Docker images
ghcr.io/Simple-Robotics/proxsuite(#470)
Removed
- CMake: remove unconditional
DOXYGEN_USE_MATHJAX. You can turn it on if necessary withcmake -DDOXYGEN_USE_MATHJAX=ON. (#467)
0.7.3 - 2026-05-11
Added
- Recursive stub generation for Python bindings (#419)
Changed
- Redefine the
load_qpfunction in the Maros-Meszaros unit tests (#433) - Change the default branch to
devel(#395) - Change
dual_feasibilitytest threshold insparse_maros_meszarosunit test (#403) - replace
std::numeric_limits<T>::infinity()bystd::numeric_limits<T>::max()(#413) - Upgraded nanobind dependency version (submodule) to v2.9.2 (#418)
- Better dynamic module handling (#419)
- Fix
SyntaxErroron importingproxsuite.torch.qplayercaused by invalid escape sequences in theQPFunctiondocstring (#458)
Fixed
- Correction of the status update for
PROXQP_SOLVED_CLOSEST_PRIMAL_FEASIBLE(#432) - Use the right table to store
configure-argscmeel argument (#403) - Allow project to be used as an external CMake project (FetchContent) (#408)
- Fix -Wdeprecated-literal-operator warning (#420)
- Fix compilation error with Apple Clang compiler (#431)
- Fix
settings.primal_infeasibility_solvingdocumentation (#438) - Various fixes for equality comparisons for
ResultsandSettingsobjects (#450 - Fix doc generation with latex (#453)
Removed
- Don't release PyPy package on GNU/Linux anymore (#403)
0.7.2 - 2025-03-12
Fixed
- Fix an arcane compilation issue on Clang-19 (#379)
- Replace
!= Nonewithis not Nonein Python bindings (#375) - Fix Internal compiler error with Visual Studio 17.13 (#384)
Changed
- Upgrade nanobind submodule to v2.5.0 (#378)
- Switch to gersemi for formatting (#380)
- Switch to ruff for formatting / linting (#376)
0.7.1 - 2025-01-28
Fixed
- Fix Windows build with MSVC compiler and C++20 standard (#368)
0.7.0 - 2025-01-21
Fixed
- CMake: Fix link to system cereal in tests (#353)
- Fix windows build error related to template usage in veg (#357)
Added
- Stub files for Python bindings, using nanobind's native support (#340)
- Python 3.13 support on PyPI (#361)
- Add
solve_no_gilfor dense backend (multithreading via python) (#363) - Add benchmarks for
solve_no_gilvssolve_in_parallel(openmp) (#363)
Changed
- Change Python bindings to use nanobind instead of pybind11 (#340)
- Update setup-minicondav2 to v3 (#363)
0.6.7 - 2024-08-27
Added
- Fix mu update function for PrimalLDLT backend (#349)
- Allow use of installed pybind11, cereal and jrl-cmakemodules via cmake
- Add compatibility with jrl-cmakemodules workspace (#339)
- Specifically mention that timings are in microseconds (#342)
- Fix cereal include directory in cmake (#342)
- Extend doc with hint for conda installation from source (#342)
Fixed
- Fix inequality constraints return in QPLayer (#343)
Changed
- Refactor Python examples with a new "util.py" file (#347)
0.6.6 - 2024-06-15
Fixed
- Fix infeasibility detection and add a unit test (#328)
0.6.5 - 2024-05-31
Added
- Pip wheels for Python 3.12 and stop support Python 3.7 (#324)
Fixed
- Fixes compilation issue with GCC 14 on Arch (#322)
What's Changed
- Change from torch.Tensor to torch.empty or torch.tensor and specify type explicitly (#308)
- Fix handling of batch of inequality constraints in
QPFunctionFn_infeas. The derivations in qplayer was done for single-sided constraints, that's the reason for the concatenation but the expansion of batchsize dimension was not working properly (#308) - Switch from self-hosted runner for macos-14-ARM to runner from github (#306)
- Fix missing cassert for some compilers (#316)
0.6.4 - 2024-03-01
What's Changed
- Changed
primal_infeasibility_solvingtoFalsefor feasible QPs (#302)
0.6.3 - 2024-01-23
Fixed
- Fix Python tests with scipy>=1.12 (#299)
0.6.2 - 2024-01-22
Fixed
- Fix Windows build (#290)
- Fix math formulae in documentation (#294)
- Restore correc values for infeasibility (#292)
- Handles CPU/GPU transfer in
QPFunctionFn'sbackwardfunction (#297)
0.6.1 - 2023-11-16
What's Changed
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#280)
- Templating power iteration algorithm by matrix storage order by @quentinll (#279)
New Contributors
- @quentinll made their first contribution (#279)
0.6.0 - 2023-11-13
News
We add the implementation of QPLayer. QPLayer enables to use a QP as a layer within standard learning architectures. QPLayer allows for parallelized calculus over CPUs, and is interfaced with PyTorch. QPLayer can also differentiate over LPs.
What's Changed
- QPLayer: efficient differentiation of convex quadratic optimization by @fabinsch, @Bambade and @quentinll (#264)
0.5.1 - 2023-11-09
What's Changed
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#265)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#268)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#269)
- Check model is_valid up to eps by @fabinsch (#272)
0.5.0 - 2023-09-26
This release adds support for nonconvex QPs, along with healthy fixes.
What's Changed
- Fix compilation (veg/memory) for gcc 7 and clang 7 by @costashatz (#255)
- Estimate minimal eigenvalue of quadratic cost hessian by @Bambade (#257)
- Fix typo #254 by @Bambade (#258)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#260)
- Sync submodule cmake by @jcarpent (#261)
New Contributors
- @costashatz made their first contribution (#255)
0.4.1 - 2023-08-02
What's Changed
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#247)
- Add Iros on ROS CI by @jcarpent (#248)
- Update default value for update_preconditioner by @jcarpent (#250)
0.4.0 - 2023-07-10
What's Changed
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#225)
- add generalized primal dual augmented Lagrangian (gpdal) for dense backend by @Bambade (#228)
- optimize dense iterative refinement by @Bambade (#230)
- Add dense LP interface by @Bambade (#231)
- Enable solving QP ([#229](parallel with ProxQP by @Bambade in https://github.com/Simple-Robotics/proxsuite/pull/229))
- Add small dense LP Python example by @stephane-caron (#235)
- Fix typo ([#234](dense lp interface by @Bambade in https://github.com/Simple-Robotics/proxsuite/pull/234))
- ci check all jobs pass by @fabinsch (#236)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#232)
- Add box constraint interface for dense backend by @Bambade (#238)
- Improve dense backend and simplify calculus when using a Diagonal Hessian by @Bambade (#239)
- Add infeasibility solving feature for dense and sparse backends by @Bambade (#241)
- cmake: fix path to find-external/OpenMP by @fabinsch (#240)
- More information ([#242](debug mode by @fabinsch in https://github.com/Simple-Robotics/proxsuite/pull/242))
- Fix warning and clean // solvers API by @jcarpent (#243)
0.3.7 - 2023-05-05
What's Changed
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#206)
- Define PROXSUITE_AS_SUBPROJECT as ON by @amiller27 (#207)
- Sync submodule cmake by @jcarpent (#208)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#210)
- Set default CMAKE_BUILD_TYPE value by @jcarpent (#211)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#214)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#215)
- Set simde dependency for ROS2 Iron as well by @wxmerkt (#218)
- Sync submodule CMake by @jcarpent (#219)
New Contributors
- @amiller27 made their first contribution (#207)
0.3.6 - 2023-03-14
What's Changed
- ci/linux-wheels: fix naming for artifacts by @fabinsch (#198)
- pip wheels for aarch64 by @fabinsch (#202)
0.3.5 - 2023-03-06
What's Changed
- doc: pip install available on windows by @fabinsch (#189)
- set compute_timings = true by @fabinsch (#191)
- [minor] Clean up invalid link from pyproject.toml by @stephane-caron (#193)
- ci/linux: fix linux wheel compatibility by @fabinsch (#196)
0.3.4 - 2023-03-01
What's Changed
- CI: pip wheels on windows by @fabinsch (#185)
- [CI] ROS: Add friendly names; add TSID on Rolling as downstream test by @wxmerkt (#184)
- CI: simplify workflow on self-hosted M1 by @fabinsch (#187)
[0.3.3] - 2023-02-25
What's Changed
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#172)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#174)
- cmake: add option BUILD_DOCUMENTATION by @fabinsch (#177)
- linalg/ldlt : mark p() and pt() permutation matrix getters const by @ManifoldFR (#180)
- feat: enable simde ([#21](package.xml by @wep21)))) (#178)
- [CI] ROS: Activate prerelease by @wxmerkt (#181)
New Contributors
- @ManifoldFR made their first contribution (#180)
- @wep21 made their first contribution (#178)
0.3.2 - 2023-01-17
What's Changed
- Expose check_duality_gap ([#167](Python settings by @stephane-caron in https://github.com/Simple-Robotics/proxsuite/pull/167))
- Add duality-gap thresholds by @stephane-caron (#169)
New Contributors
- @stephane-caron made their first contribution (#167)
0.3.1 - 2023-01-09
What's Changed
- Fix package.xml and add ROS-CI by @wxmerkt (#158)
- ROS-CI: Debug and Release builds, fix warnings by @wxmerkt (#159)
- Fix computation of duality gap quantity by @jcarpent (#163)
- Sync submodule cmake by @jcarpent (#164)
New Contributors
0.3.0 - 2022-12-26
What's Changed
- Add serialization of dense qp model using cereal by @fabinsch (#152)
- transposeInPlace only if eigen >= 3.4.0 by @fabinsch (#153)
- Fix Windows C++20 compatibility by @jcarpent (#155)
0.2.16 - 2022-12-21
What's Changed
- Fix default parameter values for compute_timings by @jcarpent (#146)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#147)
- Fix packaging issue on Windows by @jcarpent (#149)
0.2.15 - 2022-12-15
What's Changed
0.2.14 - 2022-12-14
What's Changed
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#134)
- update benchmarks random mixed qp by @fabinsch (#137)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#138)
- add is_valid function for dense model and fix example + unittest by @fabinsch (#139)
0.2.13 - 2022-11-29
What's Changed
- Enforce check for other architectures by @jcarpent (#132)
- Fix support for POWERPC by @jcarpent (#133)
0.2.12 - 2022-11-26
What's Changed
New Contributors
0.2.11 - 2022-11-25
What's Changed
- Fix dimension check issues by @jcarpent (#125)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#124)
- Add is_initialized safeguard to workspace by @fabinsch (#126)
- Add simple cpp example by @fabinsch (#127)
0.2.10 - 2022-11-17
What's Changed
- Allow macOS Debug pipeline to fail -> checking for memory alloc by @fabinsch (#117)
- Devel by @jcarpent (#118)
- fix instructionset import by @fabinsch (#120)
0.2.9 - 2022-11-14
What's Changed
- Enforce robustness computation of duality gap by @jcarpent (#114)
- Assert primal/dual residual and dual gap != nan + add unittest by @fabinsch (#115)
0.2.8 - 2022-11-12
What's Changed
- Enforce constness and clean CMake by @jcarpent (#106)
- Add details on using ProxSuite with CMake projects by @jcarpent (#111)
- Add duality gap measure by @Bambade (#110)
0.2.7 - 2022-11-10
What's Changed
- CMakeLists: fix INTERFACE target compile definitions by @fabinsch (#97)
- sync submodule by @fabinsch (#98)
- Fixed temporaries ([#100](update() of dense wrapper by @fennel-labs in https://github.com/Simple-Robotics/proxsuite/pull/100))
- Additional option to check eigen runtime malloc by @fabinsch (#93)
New Contributors
- @fennel-labs made their first contribution (#100)
0.2.6 - 2022-11-08
What's Changed
- User option sparse backend by @fabinsch (#84)
- CI for c++14 compatibility by @fabinsch (#88)
- Update README.md by @fabinsch (#89)
- CI: use v1.2 also for windows, add cxx_std to key by @fabinsch (#90)
- Fix heap allocation ([#92](dense solver by @jcarpent in https://github.com/Simple-Robotics/proxsuite/pull/92))
0.2.5 - 2022-11-06
What's Changed
- C++14 compliant implementation of optional by @fabinsch (#78)
- C++14 compliant implementation of aligned_alloc by @fabinsch (#79)
- unittest/sparse-ruiz: replace checks with isApprox by @fabinsch (#83)
- Fix packaging for pip by @jcarpent (#82)
- Move optional.hpp to the right place by @jcarpent (#81)
- Fix logic and bug ([#85](warm_start by @jcarpent in https://github.com/Simple-Robotics/proxsuite/pull/85))
0.2.4 - 2022-11-01
What's Changed
- Change eps_abs to a reasonable value by @jcarpent (#70)
- sparse/solver: use refactorize for matrix free solver by @fabinsch (#73)
- Enhance API by @jcarpent (#71)
- Correct documentation of bindings by @fabinsch (#72)
- Add pipeline with MSVC compiler by @fabinsch (#49)
[0.2.3] - 2022-10-29
What's Changed
- Fix epsilon relative stopping criteria by @fabinsch (#58)
- Handle empty inputs by @fabinsch (#59)
- Fix calculation of objection function value by @fabinsch (#60)
- Doc: matio link by @fabinsch (#61)
- Fix packaging issue by @jcarpent (#64)
- Change default model upper and lower bounds by @Bambade (#66)
- Fix API for bounds on the inequality constraints by @jcarpent (#67)
0.2.2 - 2022-10-19
What's Changed
- release: wheels for macos arm64 by @fabinsch (#53)
- Don't compile AVX Python bindings on non X86_64 arch by @jcarpent (#54)
- Fix existence of std::aligned_alloc on APPLE by @jcarpent (#55)
0.2.1 - 2022-10-18
What's Changed
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#43)
- Sync ma([#42](with devel by @jcarpent in https://github.com/Simple-Robotics/proxsuite/pull/42))
- Fix compile options export for Windows by @jcarpent (#44)
- benchmark: document speed up by vectorization by @fabinsch (#48)
- Support ARM64 architecture by @fabinsch (#50)
0.2.0 - 2022-10-08
This release introduces a notable change ([#](the order of bounds constraints.)) As the API is not yet totally fixed, we have only increased the minor release version.
More to come ([#](a forthcoming release.))
What's Changed
- CI/release: fix uploading proxsuite wheels only by @fabinsch (#30)
- TEST-AUTOMERGE by @fabinsch (#31)
- Fix c++ documentation by @fabinsch (#32)
- Compilation MSVC by @aescande (#33)
- Add specific compile option for MSVC by @jcarpent (#35)
- Sync submodule CMake by @jcarpent (#37)
- Remove sparse sparse overload for dense backend by @Bambade (#36)
- change qp.init(H,g,A,b,C,u,l) into qp.init(H,g,A,b,C,l,u) by @Bambade (#39)
- Fix packaging issues and remove useless test files by @jcarpent (#40)
New Contributors
0.1.2 - 2022-09-26
What's Changed
- Support python 3.7 for proxsuite wheels by @fabinsch (#27)
- Add default proximal step sizes by @Bambade (#26)
- Sync submodule cmake by @jcarpent (#28)
0.1.1 - 2022-09-09
What's Changed
- add missing includes by @nim65s (#21)
- update README and sync submodule by @Bambade (#20)
- Fix packaging issues by @jcarpent (#23)
- Fix preconditioner by @fabinsch (#24)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#25)
- Add more unittests by @fabinsch (#22)
New Contributors
- @nim65s made their first contribution (#21)
- @pre-commit-ci made their first contribution (#25)
0.1.0 - 2022-08-24
What's Changed
- Fix aligned alloc for old version of OSX target deployment by @jcarpent (#3)
- Fix documentation and the publishing pipeline by @jcarpent (#4)
- Bindings: expose qp solver output by @fabinsch (#11)
- provide initialization of solvers with None entries by @Bambade (#12)
- Fix packaging issues and add more packaging test by @jcarpent (#17)
- Use PROXSUITE_VECTORIZE and change logic by @jcarpent (#18)
New Contributors
- @jcarpent made their first contribution (#3)
- @fabinsch made their first contribution (#11)
- @Bambade made their first contribution (#12)
[0.0.1] - 2022-08-11
The first release of ProxSuite.