Package Summary
Tags | No category tags. |
Version | 0.7.2 |
License | BSD-2 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Simple-Robotics/proxsuite.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
Authors
- Antoine Bambade
- Adrien Taylor
- Fabian Schramm
- Sarah El-Kazdadi
- Justin Carpentier
ProxSuite is a collection of open-source, numerically robust, precise, and efficient numerical solvers (e.g., LPs, QPs, etc.) rooted in revisited primal-dual proximal algorithms. Through ProxSuite, we aim to offer the community scalable optimizers that deal with dense, sparse, or matrix-free problems. While the first targeted application is Robotics, ProxSuite can be used in other contexts without limits.
ProxSuite is actively developed and supported by the Willow and Sierra research groups, joint research teams between Inria, École Normale Supérieure de Paris and Centre National de la Recherche Scientifique localized in France.
ProxSuite is already integrated into:
- CVXPY modeling language for convex optimization problems,
- CasADi’s symbolic framework for numerical optimization in general and optimal control. ProxQP is available in CasADi as a plugin to solve quadratic programs,
- TSID: robotic software for efficient robot inverse dynamics with contacts and based on Pinocchio.
We are ready to integrate ProxSuite within other optimization ecosystems.
ProxSuite main features
Proxsuite is fast:
- C++ template library,
- cache-friendly.
Proxsuite is versatile, offering through a unified API advanced algorithms specialized for efficiently exploiting problem structures:
- dense, sparse, and matrix-free matrix factorization backends,
- advanced warm-starting options (e.g., equality-constrained initial guess, warm-start or cold-start options from previous results),
with dedicated features for
- handling more efficiently box constraints, linear programs, QP with diagonal Hessian, or with far more constraints than primal variables,
- solving nonconvex QPs,
- solving batches of QPs in parallel,
- solving the closest feasible QP if the QP appears to be primal infeasible,
- differentiating feasible and infeasible QPs.
Proxsuite is flexible:
- header only,
- C++ 14/17/20 compliant,
- Python and Julia bindings for easy code prototyping without sacrificing performance.
Proxsuite is extensible. Proxsuite is reliable and extensively tested, showing the best performances on the hardest problems of the literature. Proxsuite is supported and tested on Windows, Mac OS X, Unix, and Linux.
Documentation
The online ProxSuite documentation of the last release is available here.
Getting started
ProxSuite is distributed to many well-known package managers.
Quick install with
:
pip install proxsuite
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
conda install proxsuite -c conda-forge
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
brew install proxsuite
This approach is available on Linux and Mac OS X.
Alternative approaches
Installation from source is presented here.
Compiling a first example program
For the fastest performance, use the following command to enable vectorization when compiling the simple example.
g++ -O3 -march=native -DNDEBUG -std=gnu++17 -DPROXSUITE_VECTORIZE examples/first_example_dense.cpp -o first_example_dense $(pkg-config --cflags proxsuite)
Using ProxSuite with CMake
If you want to use ProxSuite with CMake, the following tiny example should help you:
```cmake cmake_minimum_required(VERSION 3.10)
project(Example CXX) find_package(proxsuite REQUIRED) set(CMAKE_CXX_STANDARD 17) # set(CMAKE_CXX_STANDARD 14) will work too
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#395)
[0.7.2] - 2025-03-12
Fixed
- Fix an arcane compilation issue on Clang-19 (#379)
- Replace
!= None
withis not None
in 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_gil
for dense backend (multithreading via python) (#363) - Add benchmarks for
solve_no_gil
vssolve_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_solving
toFalse
for 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
’sbackward
function (#297)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
autoware_qp_interface |
Launch files
Messages
Services
Plugins
Recent questions tagged proxsuite at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.7.2 |
License | BSD-2 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Simple-Robotics/proxsuite.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
Authors
- Antoine Bambade
- Adrien Taylor
- Fabian Schramm
- Sarah El-Kazdadi
- Justin Carpentier
ProxSuite is a collection of open-source, numerically robust, precise, and efficient numerical solvers (e.g., LPs, QPs, etc.) rooted in revisited primal-dual proximal algorithms. Through ProxSuite, we aim to offer the community scalable optimizers that deal with dense, sparse, or matrix-free problems. While the first targeted application is Robotics, ProxSuite can be used in other contexts without limits.
ProxSuite is actively developed and supported by the Willow and Sierra research groups, joint research teams between Inria, École Normale Supérieure de Paris and Centre National de la Recherche Scientifique localized in France.
ProxSuite is already integrated into:
- CVXPY modeling language for convex optimization problems,
- CasADi’s symbolic framework for numerical optimization in general and optimal control. ProxQP is available in CasADi as a plugin to solve quadratic programs,
- TSID: robotic software for efficient robot inverse dynamics with contacts and based on Pinocchio.
We are ready to integrate ProxSuite within other optimization ecosystems.
ProxSuite main features
Proxsuite is fast:
- C++ template library,
- cache-friendly.
Proxsuite is versatile, offering through a unified API advanced algorithms specialized for efficiently exploiting problem structures:
- dense, sparse, and matrix-free matrix factorization backends,
- advanced warm-starting options (e.g., equality-constrained initial guess, warm-start or cold-start options from previous results),
with dedicated features for
- handling more efficiently box constraints, linear programs, QP with diagonal Hessian, or with far more constraints than primal variables,
- solving nonconvex QPs,
- solving batches of QPs in parallel,
- solving the closest feasible QP if the QP appears to be primal infeasible,
- differentiating feasible and infeasible QPs.
Proxsuite is flexible:
- header only,
- C++ 14/17/20 compliant,
- Python and Julia bindings for easy code prototyping without sacrificing performance.
Proxsuite is extensible. Proxsuite is reliable and extensively tested, showing the best performances on the hardest problems of the literature. Proxsuite is supported and tested on Windows, Mac OS X, Unix, and Linux.
Documentation
The online ProxSuite documentation of the last release is available here.
Getting started
ProxSuite is distributed to many well-known package managers.
Quick install with
:
pip install proxsuite
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
conda install proxsuite -c conda-forge
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
brew install proxsuite
This approach is available on Linux and Mac OS X.
Alternative approaches
Installation from source is presented here.
Compiling a first example program
For the fastest performance, use the following command to enable vectorization when compiling the simple example.
g++ -O3 -march=native -DNDEBUG -std=gnu++17 -DPROXSUITE_VECTORIZE examples/first_example_dense.cpp -o first_example_dense $(pkg-config --cflags proxsuite)
Using ProxSuite with CMake
If you want to use ProxSuite with CMake, the following tiny example should help you:
```cmake cmake_minimum_required(VERSION 3.10)
project(Example CXX) find_package(proxsuite REQUIRED) set(CMAKE_CXX_STANDARD 17) # set(CMAKE_CXX_STANDARD 14) will work too
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#395)
[0.7.2] - 2025-03-12
Fixed
- Fix an arcane compilation issue on Clang-19 (#379)
- Replace
!= None
withis not None
in 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_gil
for dense backend (multithreading via python) (#363) - Add benchmarks for
solve_no_gil
vssolve_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_solving
toFalse
for 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
’sbackward
function (#297)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged proxsuite at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.7.2 |
License | BSD-2 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Simple-Robotics/proxsuite.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
Authors
- Antoine Bambade
- Adrien Taylor
- Fabian Schramm
- Sarah El-Kazdadi
- Justin Carpentier
ProxSuite is a collection of open-source, numerically robust, precise, and efficient numerical solvers (e.g., LPs, QPs, etc.) rooted in revisited primal-dual proximal algorithms. Through ProxSuite, we aim to offer the community scalable optimizers that deal with dense, sparse, or matrix-free problems. While the first targeted application is Robotics, ProxSuite can be used in other contexts without limits.
ProxSuite is actively developed and supported by the Willow and Sierra research groups, joint research teams between Inria, École Normale Supérieure de Paris and Centre National de la Recherche Scientifique localized in France.
ProxSuite is already integrated into:
- CVXPY modeling language for convex optimization problems,
- CasADi’s symbolic framework for numerical optimization in general and optimal control. ProxQP is available in CasADi as a plugin to solve quadratic programs,
- TSID: robotic software for efficient robot inverse dynamics with contacts and based on Pinocchio.
We are ready to integrate ProxSuite within other optimization ecosystems.
ProxSuite main features
Proxsuite is fast:
- C++ template library,
- cache-friendly.
Proxsuite is versatile, offering through a unified API advanced algorithms specialized for efficiently exploiting problem structures:
- dense, sparse, and matrix-free matrix factorization backends,
- advanced warm-starting options (e.g., equality-constrained initial guess, warm-start or cold-start options from previous results),
with dedicated features for
- handling more efficiently box constraints, linear programs, QP with diagonal Hessian, or with far more constraints than primal variables,
- solving nonconvex QPs,
- solving batches of QPs in parallel,
- solving the closest feasible QP if the QP appears to be primal infeasible,
- differentiating feasible and infeasible QPs.
Proxsuite is flexible:
- header only,
- C++ 14/17/20 compliant,
- Python and Julia bindings for easy code prototyping without sacrificing performance.
Proxsuite is extensible. Proxsuite is reliable and extensively tested, showing the best performances on the hardest problems of the literature. Proxsuite is supported and tested on Windows, Mac OS X, Unix, and Linux.
Documentation
The online ProxSuite documentation of the last release is available here.
Getting started
ProxSuite is distributed to many well-known package managers.
Quick install with
:
pip install proxsuite
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
conda install proxsuite -c conda-forge
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
brew install proxsuite
This approach is available on Linux and Mac OS X.
Alternative approaches
Installation from source is presented here.
Compiling a first example program
For the fastest performance, use the following command to enable vectorization when compiling the simple example.
g++ -O3 -march=native -DNDEBUG -std=gnu++17 -DPROXSUITE_VECTORIZE examples/first_example_dense.cpp -o first_example_dense $(pkg-config --cflags proxsuite)
Using ProxSuite with CMake
If you want to use ProxSuite with CMake, the following tiny example should help you:
```cmake cmake_minimum_required(VERSION 3.10)
project(Example CXX) find_package(proxsuite REQUIRED) set(CMAKE_CXX_STANDARD 17) # set(CMAKE_CXX_STANDARD 14) will work too
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#395)
[0.7.2] - 2025-03-12
Fixed
- Fix an arcane compilation issue on Clang-19 (#379)
- Replace
!= None
withis not None
in 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_gil
for dense backend (multithreading via python) (#363) - Add benchmarks for
solve_no_gil
vssolve_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_solving
toFalse
for 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
’sbackward
function (#297)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged proxsuite at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.7.2 |
License | BSD-2 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Simple-Robotics/proxsuite.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
Authors
- Antoine Bambade
- Adrien Taylor
- Fabian Schramm
- Sarah El-Kazdadi
- Justin Carpentier
ProxSuite is a collection of open-source, numerically robust, precise, and efficient numerical solvers (e.g., LPs, QPs, etc.) rooted in revisited primal-dual proximal algorithms. Through ProxSuite, we aim to offer the community scalable optimizers that deal with dense, sparse, or matrix-free problems. While the first targeted application is Robotics, ProxSuite can be used in other contexts without limits.
ProxSuite is actively developed and supported by the Willow and Sierra research groups, joint research teams between Inria, École Normale Supérieure de Paris and Centre National de la Recherche Scientifique localized in France.
ProxSuite is already integrated into:
- CVXPY modeling language for convex optimization problems,
- CasADi’s symbolic framework for numerical optimization in general and optimal control. ProxQP is available in CasADi as a plugin to solve quadratic programs,
- TSID: robotic software for efficient robot inverse dynamics with contacts and based on Pinocchio.
We are ready to integrate ProxSuite within other optimization ecosystems.
ProxSuite main features
Proxsuite is fast:
- C++ template library,
- cache-friendly.
Proxsuite is versatile, offering through a unified API advanced algorithms specialized for efficiently exploiting problem structures:
- dense, sparse, and matrix-free matrix factorization backends,
- advanced warm-starting options (e.g., equality-constrained initial guess, warm-start or cold-start options from previous results),
with dedicated features for
- handling more efficiently box constraints, linear programs, QP with diagonal Hessian, or with far more constraints than primal variables,
- solving nonconvex QPs,
- solving batches of QPs in parallel,
- solving the closest feasible QP if the QP appears to be primal infeasible,
- differentiating feasible and infeasible QPs.
Proxsuite is flexible:
- header only,
- C++ 14/17/20 compliant,
- Python and Julia bindings for easy code prototyping without sacrificing performance.
Proxsuite is extensible. Proxsuite is reliable and extensively tested, showing the best performances on the hardest problems of the literature. Proxsuite is supported and tested on Windows, Mac OS X, Unix, and Linux.
Documentation
The online ProxSuite documentation of the last release is available here.
Getting started
ProxSuite is distributed to many well-known package managers.
Quick install with
:
pip install proxsuite
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
conda install proxsuite -c conda-forge
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
brew install proxsuite
This approach is available on Linux and Mac OS X.
Alternative approaches
Installation from source is presented here.
Compiling a first example program
For the fastest performance, use the following command to enable vectorization when compiling the simple example.
g++ -O3 -march=native -DNDEBUG -std=gnu++17 -DPROXSUITE_VECTORIZE examples/first_example_dense.cpp -o first_example_dense $(pkg-config --cflags proxsuite)
Using ProxSuite with CMake
If you want to use ProxSuite with CMake, the following tiny example should help you:
```cmake cmake_minimum_required(VERSION 3.10)
project(Example CXX) find_package(proxsuite REQUIRED) set(CMAKE_CXX_STANDARD 17) # set(CMAKE_CXX_STANDARD 14) will work too
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#395)
[0.7.2] - 2025-03-12
Fixed
- Fix an arcane compilation issue on Clang-19 (#379)
- Replace
!= None
withis not None
in 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_gil
for dense backend (multithreading via python) (#363) - Add benchmarks for
solve_no_gil
vssolve_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_solving
toFalse
for 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
’sbackward
function (#297)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged proxsuite at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.7.2 |
License | BSD-2 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Simple-Robotics/proxsuite.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
Authors
- Antoine Bambade
- Adrien Taylor
- Fabian Schramm
- Sarah El-Kazdadi
- Justin Carpentier
ProxSuite is a collection of open-source, numerically robust, precise, and efficient numerical solvers (e.g., LPs, QPs, etc.) rooted in revisited primal-dual proximal algorithms. Through ProxSuite, we aim to offer the community scalable optimizers that deal with dense, sparse, or matrix-free problems. While the first targeted application is Robotics, ProxSuite can be used in other contexts without limits.
ProxSuite is actively developed and supported by the Willow and Sierra research groups, joint research teams between Inria, École Normale Supérieure de Paris and Centre National de la Recherche Scientifique localized in France.
ProxSuite is already integrated into:
- CVXPY modeling language for convex optimization problems,
- CasADi’s symbolic framework for numerical optimization in general and optimal control. ProxQP is available in CasADi as a plugin to solve quadratic programs,
- TSID: robotic software for efficient robot inverse dynamics with contacts and based on Pinocchio.
We are ready to integrate ProxSuite within other optimization ecosystems.
ProxSuite main features
Proxsuite is fast:
- C++ template library,
- cache-friendly.
Proxsuite is versatile, offering through a unified API advanced algorithms specialized for efficiently exploiting problem structures:
- dense, sparse, and matrix-free matrix factorization backends,
- advanced warm-starting options (e.g., equality-constrained initial guess, warm-start or cold-start options from previous results),
with dedicated features for
- handling more efficiently box constraints, linear programs, QP with diagonal Hessian, or with far more constraints than primal variables,
- solving nonconvex QPs,
- solving batches of QPs in parallel,
- solving the closest feasible QP if the QP appears to be primal infeasible,
- differentiating feasible and infeasible QPs.
Proxsuite is flexible:
- header only,
- C++ 14/17/20 compliant,
- Python and Julia bindings for easy code prototyping without sacrificing performance.
Proxsuite is extensible. Proxsuite is reliable and extensively tested, showing the best performances on the hardest problems of the literature. Proxsuite is supported and tested on Windows, Mac OS X, Unix, and Linux.
Documentation
The online ProxSuite documentation of the last release is available here.
Getting started
ProxSuite is distributed to many well-known package managers.
Quick install with
:
pip install proxsuite
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
conda install proxsuite -c conda-forge
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
brew install proxsuite
This approach is available on Linux and Mac OS X.
Alternative approaches
Installation from source is presented here.
Compiling a first example program
For the fastest performance, use the following command to enable vectorization when compiling the simple example.
g++ -O3 -march=native -DNDEBUG -std=gnu++17 -DPROXSUITE_VECTORIZE examples/first_example_dense.cpp -o first_example_dense $(pkg-config --cflags proxsuite)
Using ProxSuite with CMake
If you want to use ProxSuite with CMake, the following tiny example should help you:
```cmake cmake_minimum_required(VERSION 3.10)
project(Example CXX) find_package(proxsuite REQUIRED) set(CMAKE_CXX_STANDARD 17) # set(CMAKE_CXX_STANDARD 14) will work too
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#395)
[0.7.2] - 2025-03-12
Fixed
- Fix an arcane compilation issue on Clang-19 (#379)
- Replace
!= None
withis not None
in 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_gil
for dense backend (multithreading via python) (#363) - Add benchmarks for
solve_no_gil
vssolve_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_solving
toFalse
for 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
’sbackward
function (#297)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
autoware_qp_interface |
Launch files
Messages
Services
Plugins
Recent questions tagged proxsuite at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.7.2 |
License | BSD-2 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Simple-Robotics/proxsuite.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
Authors
- Antoine Bambade
- Adrien Taylor
- Fabian Schramm
- Sarah El-Kazdadi
- Justin Carpentier
ProxSuite is a collection of open-source, numerically robust, precise, and efficient numerical solvers (e.g., LPs, QPs, etc.) rooted in revisited primal-dual proximal algorithms. Through ProxSuite, we aim to offer the community scalable optimizers that deal with dense, sparse, or matrix-free problems. While the first targeted application is Robotics, ProxSuite can be used in other contexts without limits.
ProxSuite is actively developed and supported by the Willow and Sierra research groups, joint research teams between Inria, École Normale Supérieure de Paris and Centre National de la Recherche Scientifique localized in France.
ProxSuite is already integrated into:
- CVXPY modeling language for convex optimization problems,
- CasADi’s symbolic framework for numerical optimization in general and optimal control. ProxQP is available in CasADi as a plugin to solve quadratic programs,
- TSID: robotic software for efficient robot inverse dynamics with contacts and based on Pinocchio.
We are ready to integrate ProxSuite within other optimization ecosystems.
ProxSuite main features
Proxsuite is fast:
- C++ template library,
- cache-friendly.
Proxsuite is versatile, offering through a unified API advanced algorithms specialized for efficiently exploiting problem structures:
- dense, sparse, and matrix-free matrix factorization backends,
- advanced warm-starting options (e.g., equality-constrained initial guess, warm-start or cold-start options from previous results),
with dedicated features for
- handling more efficiently box constraints, linear programs, QP with diagonal Hessian, or with far more constraints than primal variables,
- solving nonconvex QPs,
- solving batches of QPs in parallel,
- solving the closest feasible QP if the QP appears to be primal infeasible,
- differentiating feasible and infeasible QPs.
Proxsuite is flexible:
- header only,
- C++ 14/17/20 compliant,
- Python and Julia bindings for easy code prototyping without sacrificing performance.
Proxsuite is extensible. Proxsuite is reliable and extensively tested, showing the best performances on the hardest problems of the literature. Proxsuite is supported and tested on Windows, Mac OS X, Unix, and Linux.
Documentation
The online ProxSuite documentation of the last release is available here.
Getting started
ProxSuite is distributed to many well-known package managers.
Quick install with
:
pip install proxsuite
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
conda install proxsuite -c conda-forge
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
brew install proxsuite
This approach is available on Linux and Mac OS X.
Alternative approaches
Installation from source is presented here.
Compiling a first example program
For the fastest performance, use the following command to enable vectorization when compiling the simple example.
g++ -O3 -march=native -DNDEBUG -std=gnu++17 -DPROXSUITE_VECTORIZE examples/first_example_dense.cpp -o first_example_dense $(pkg-config --cflags proxsuite)
Using ProxSuite with CMake
If you want to use ProxSuite with CMake, the following tiny example should help you:
```cmake cmake_minimum_required(VERSION 3.10)
project(Example CXX) find_package(proxsuite REQUIRED) set(CMAKE_CXX_STANDARD 17) # set(CMAKE_CXX_STANDARD 14) will work too
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#395)
[0.7.2] - 2025-03-12
Fixed
- Fix an arcane compilation issue on Clang-19 (#379)
- Replace
!= None
withis not None
in 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_gil
for dense backend (multithreading via python) (#363) - Add benchmarks for
solve_no_gil
vssolve_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_solving
toFalse
for 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
’sbackward
function (#297)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
autoware_qp_interface |
Launch files
Messages
Services
Plugins
Recent questions tagged proxsuite at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.7.2 |
License | BSD-2 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Simple-Robotics/proxsuite.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
Authors
- Antoine Bambade
- Adrien Taylor
- Fabian Schramm
- Sarah El-Kazdadi
- Justin Carpentier
ProxSuite is a collection of open-source, numerically robust, precise, and efficient numerical solvers (e.g., LPs, QPs, etc.) rooted in revisited primal-dual proximal algorithms. Through ProxSuite, we aim to offer the community scalable optimizers that deal with dense, sparse, or matrix-free problems. While the first targeted application is Robotics, ProxSuite can be used in other contexts without limits.
ProxSuite is actively developed and supported by the Willow and Sierra research groups, joint research teams between Inria, École Normale Supérieure de Paris and Centre National de la Recherche Scientifique localized in France.
ProxSuite is already integrated into:
- CVXPY modeling language for convex optimization problems,
- CasADi’s symbolic framework for numerical optimization in general and optimal control. ProxQP is available in CasADi as a plugin to solve quadratic programs,
- TSID: robotic software for efficient robot inverse dynamics with contacts and based on Pinocchio.
We are ready to integrate ProxSuite within other optimization ecosystems.
ProxSuite main features
Proxsuite is fast:
- C++ template library,
- cache-friendly.
Proxsuite is versatile, offering through a unified API advanced algorithms specialized for efficiently exploiting problem structures:
- dense, sparse, and matrix-free matrix factorization backends,
- advanced warm-starting options (e.g., equality-constrained initial guess, warm-start or cold-start options from previous results),
with dedicated features for
- handling more efficiently box constraints, linear programs, QP with diagonal Hessian, or with far more constraints than primal variables,
- solving nonconvex QPs,
- solving batches of QPs in parallel,
- solving the closest feasible QP if the QP appears to be primal infeasible,
- differentiating feasible and infeasible QPs.
Proxsuite is flexible:
- header only,
- C++ 14/17/20 compliant,
- Python and Julia bindings for easy code prototyping without sacrificing performance.
Proxsuite is extensible. Proxsuite is reliable and extensively tested, showing the best performances on the hardest problems of the literature. Proxsuite is supported and tested on Windows, Mac OS X, Unix, and Linux.
Documentation
The online ProxSuite documentation of the last release is available here.
Getting started
ProxSuite is distributed to many well-known package managers.
Quick install with
:
pip install proxsuite
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
conda install proxsuite -c conda-forge
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
brew install proxsuite
This approach is available on Linux and Mac OS X.
Alternative approaches
Installation from source is presented here.
Compiling a first example program
For the fastest performance, use the following command to enable vectorization when compiling the simple example.
g++ -O3 -march=native -DNDEBUG -std=gnu++17 -DPROXSUITE_VECTORIZE examples/first_example_dense.cpp -o first_example_dense $(pkg-config --cflags proxsuite)
Using ProxSuite with CMake
If you want to use ProxSuite with CMake, the following tiny example should help you:
```cmake cmake_minimum_required(VERSION 3.10)
project(Example CXX) find_package(proxsuite REQUIRED) set(CMAKE_CXX_STANDARD 17) # set(CMAKE_CXX_STANDARD 14) will work too
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#395)
[0.7.2] - 2025-03-12
Fixed
- Fix an arcane compilation issue on Clang-19 (#379)
- Replace
!= None
withis not None
in 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_gil
for dense backend (multithreading via python) (#363) - Add benchmarks for
solve_no_gil
vssolve_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_solving
toFalse
for 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
’sbackward
function (#297)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
autoware_qp_interface |
Launch files
Messages
Services
Plugins
Recent questions tagged proxsuite at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.7.2 |
License | BSD-2 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Simple-Robotics/proxsuite.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
Authors
- Antoine Bambade
- Adrien Taylor
- Fabian Schramm
- Sarah El-Kazdadi
- Justin Carpentier
ProxSuite is a collection of open-source, numerically robust, precise, and efficient numerical solvers (e.g., LPs, QPs, etc.) rooted in revisited primal-dual proximal algorithms. Through ProxSuite, we aim to offer the community scalable optimizers that deal with dense, sparse, or matrix-free problems. While the first targeted application is Robotics, ProxSuite can be used in other contexts without limits.
ProxSuite is actively developed and supported by the Willow and Sierra research groups, joint research teams between Inria, École Normale Supérieure de Paris and Centre National de la Recherche Scientifique localized in France.
ProxSuite is already integrated into:
- CVXPY modeling language for convex optimization problems,
- CasADi’s symbolic framework for numerical optimization in general and optimal control. ProxQP is available in CasADi as a plugin to solve quadratic programs,
- TSID: robotic software for efficient robot inverse dynamics with contacts and based on Pinocchio.
We are ready to integrate ProxSuite within other optimization ecosystems.
ProxSuite main features
Proxsuite is fast:
- C++ template library,
- cache-friendly.
Proxsuite is versatile, offering through a unified API advanced algorithms specialized for efficiently exploiting problem structures:
- dense, sparse, and matrix-free matrix factorization backends,
- advanced warm-starting options (e.g., equality-constrained initial guess, warm-start or cold-start options from previous results),
with dedicated features for
- handling more efficiently box constraints, linear programs, QP with diagonal Hessian, or with far more constraints than primal variables,
- solving nonconvex QPs,
- solving batches of QPs in parallel,
- solving the closest feasible QP if the QP appears to be primal infeasible,
- differentiating feasible and infeasible QPs.
Proxsuite is flexible:
- header only,
- C++ 14/17/20 compliant,
- Python and Julia bindings for easy code prototyping without sacrificing performance.
Proxsuite is extensible. Proxsuite is reliable and extensively tested, showing the best performances on the hardest problems of the literature. Proxsuite is supported and tested on Windows, Mac OS X, Unix, and Linux.
Documentation
The online ProxSuite documentation of the last release is available here.
Getting started
ProxSuite is distributed to many well-known package managers.
Quick install with
:
pip install proxsuite
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
conda install proxsuite -c conda-forge
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
brew install proxsuite
This approach is available on Linux and Mac OS X.
Alternative approaches
Installation from source is presented here.
Compiling a first example program
For the fastest performance, use the following command to enable vectorization when compiling the simple example.
g++ -O3 -march=native -DNDEBUG -std=gnu++17 -DPROXSUITE_VECTORIZE examples/first_example_dense.cpp -o first_example_dense $(pkg-config --cflags proxsuite)
Using ProxSuite with CMake
If you want to use ProxSuite with CMake, the following tiny example should help you:
```cmake cmake_minimum_required(VERSION 3.10)
project(Example CXX) find_package(proxsuite REQUIRED) set(CMAKE_CXX_STANDARD 17) # set(CMAKE_CXX_STANDARD 14) will work too
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#395)
[0.7.2] - 2025-03-12
Fixed
- Fix an arcane compilation issue on Clang-19 (#379)
- Replace
!= None
withis not None
in 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_gil
for dense backend (multithreading via python) (#363) - Add benchmarks for
solve_no_gil
vssolve_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_solving
toFalse
for 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
’sbackward
function (#297)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
autoware_qp_interface |
Launch files
Messages
Services
Plugins
Recent questions tagged proxsuite at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.7.2 |
License | BSD-2 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Simple-Robotics/proxsuite.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
Authors
- Antoine Bambade
- Adrien Taylor
- Fabian Schramm
- Sarah El-Kazdadi
- Justin Carpentier
ProxSuite is a collection of open-source, numerically robust, precise, and efficient numerical solvers (e.g., LPs, QPs, etc.) rooted in revisited primal-dual proximal algorithms. Through ProxSuite, we aim to offer the community scalable optimizers that deal with dense, sparse, or matrix-free problems. While the first targeted application is Robotics, ProxSuite can be used in other contexts without limits.
ProxSuite is actively developed and supported by the Willow and Sierra research groups, joint research teams between Inria, École Normale Supérieure de Paris and Centre National de la Recherche Scientifique localized in France.
ProxSuite is already integrated into:
- CVXPY modeling language for convex optimization problems,
- CasADi’s symbolic framework for numerical optimization in general and optimal control. ProxQP is available in CasADi as a plugin to solve quadratic programs,
- TSID: robotic software for efficient robot inverse dynamics with contacts and based on Pinocchio.
We are ready to integrate ProxSuite within other optimization ecosystems.
ProxSuite main features
Proxsuite is fast:
- C++ template library,
- cache-friendly.
Proxsuite is versatile, offering through a unified API advanced algorithms specialized for efficiently exploiting problem structures:
- dense, sparse, and matrix-free matrix factorization backends,
- advanced warm-starting options (e.g., equality-constrained initial guess, warm-start or cold-start options from previous results),
with dedicated features for
- handling more efficiently box constraints, linear programs, QP with diagonal Hessian, or with far more constraints than primal variables,
- solving nonconvex QPs,
- solving batches of QPs in parallel,
- solving the closest feasible QP if the QP appears to be primal infeasible,
- differentiating feasible and infeasible QPs.
Proxsuite is flexible:
- header only,
- C++ 14/17/20 compliant,
- Python and Julia bindings for easy code prototyping without sacrificing performance.
Proxsuite is extensible. Proxsuite is reliable and extensively tested, showing the best performances on the hardest problems of the literature. Proxsuite is supported and tested on Windows, Mac OS X, Unix, and Linux.
Documentation
The online ProxSuite documentation of the last release is available here.
Getting started
ProxSuite is distributed to many well-known package managers.
Quick install with
:
pip install proxsuite
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
conda install proxsuite -c conda-forge
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
brew install proxsuite
This approach is available on Linux and Mac OS X.
Alternative approaches
Installation from source is presented here.
Compiling a first example program
For the fastest performance, use the following command to enable vectorization when compiling the simple example.
g++ -O3 -march=native -DNDEBUG -std=gnu++17 -DPROXSUITE_VECTORIZE examples/first_example_dense.cpp -o first_example_dense $(pkg-config --cflags proxsuite)
Using ProxSuite with CMake
If you want to use ProxSuite with CMake, the following tiny example should help you:
```cmake cmake_minimum_required(VERSION 3.10)
project(Example CXX) find_package(proxsuite REQUIRED) set(CMAKE_CXX_STANDARD 17) # set(CMAKE_CXX_STANDARD 14) will work too
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#395)
[0.7.2] - 2025-03-12
Fixed
- Fix an arcane compilation issue on Clang-19 (#379)
- Replace
!= None
withis not None
in 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_gil
for dense backend (multithreading via python) (#363) - Add benchmarks for
solve_no_gil
vssolve_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_solving
toFalse
for 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
’sbackward
function (#297)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
autoware_qp_interface |
Launch files
Messages
Services
Plugins
Recent questions tagged proxsuite at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.7.2 |
License | BSD-2 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Simple-Robotics/proxsuite.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
Authors
- Antoine Bambade
- Adrien Taylor
- Fabian Schramm
- Sarah El-Kazdadi
- Justin Carpentier
ProxSuite is a collection of open-source, numerically robust, precise, and efficient numerical solvers (e.g., LPs, QPs, etc.) rooted in revisited primal-dual proximal algorithms. Through ProxSuite, we aim to offer the community scalable optimizers that deal with dense, sparse, or matrix-free problems. While the first targeted application is Robotics, ProxSuite can be used in other contexts without limits.
ProxSuite is actively developed and supported by the Willow and Sierra research groups, joint research teams between Inria, École Normale Supérieure de Paris and Centre National de la Recherche Scientifique localized in France.
ProxSuite is already integrated into:
- CVXPY modeling language for convex optimization problems,
- CasADi’s symbolic framework for numerical optimization in general and optimal control. ProxQP is available in CasADi as a plugin to solve quadratic programs,
- TSID: robotic software for efficient robot inverse dynamics with contacts and based on Pinocchio.
We are ready to integrate ProxSuite within other optimization ecosystems.
ProxSuite main features
Proxsuite is fast:
- C++ template library,
- cache-friendly.
Proxsuite is versatile, offering through a unified API advanced algorithms specialized for efficiently exploiting problem structures:
- dense, sparse, and matrix-free matrix factorization backends,
- advanced warm-starting options (e.g., equality-constrained initial guess, warm-start or cold-start options from previous results),
with dedicated features for
- handling more efficiently box constraints, linear programs, QP with diagonal Hessian, or with far more constraints than primal variables,
- solving nonconvex QPs,
- solving batches of QPs in parallel,
- solving the closest feasible QP if the QP appears to be primal infeasible,
- differentiating feasible and infeasible QPs.
Proxsuite is flexible:
- header only,
- C++ 14/17/20 compliant,
- Python and Julia bindings for easy code prototyping without sacrificing performance.
Proxsuite is extensible. Proxsuite is reliable and extensively tested, showing the best performances on the hardest problems of the literature. Proxsuite is supported and tested on Windows, Mac OS X, Unix, and Linux.
Documentation
The online ProxSuite documentation of the last release is available here.
Getting started
ProxSuite is distributed to many well-known package managers.
Quick install with
:
pip install proxsuite
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
conda install proxsuite -c conda-forge
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
brew install proxsuite
This approach is available on Linux and Mac OS X.
Alternative approaches
Installation from source is presented here.
Compiling a first example program
For the fastest performance, use the following command to enable vectorization when compiling the simple example.
g++ -O3 -march=native -DNDEBUG -std=gnu++17 -DPROXSUITE_VECTORIZE examples/first_example_dense.cpp -o first_example_dense $(pkg-config --cflags proxsuite)
Using ProxSuite with CMake
If you want to use ProxSuite with CMake, the following tiny example should help you:
```cmake cmake_minimum_required(VERSION 3.10)
project(Example CXX) find_package(proxsuite REQUIRED) set(CMAKE_CXX_STANDARD 17) # set(CMAKE_CXX_STANDARD 14) will work too
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#395)
[0.7.2] - 2025-03-12
Fixed
- Fix an arcane compilation issue on Clang-19 (#379)
- Replace
!= None
withis not None
in 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_gil
for dense backend (multithreading via python) (#363) - Add benchmarks for
solve_no_gil
vssolve_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_solving
toFalse
for 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
’sbackward
function (#297)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
autoware_qp_interface |
Launch files
Messages
Services
Plugins
Recent questions tagged proxsuite at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.7.2 |
License | BSD-2 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Simple-Robotics/proxsuite.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
Authors
- Antoine Bambade
- Adrien Taylor
- Fabian Schramm
- Sarah El-Kazdadi
- Justin Carpentier
ProxSuite is a collection of open-source, numerically robust, precise, and efficient numerical solvers (e.g., LPs, QPs, etc.) rooted in revisited primal-dual proximal algorithms. Through ProxSuite, we aim to offer the community scalable optimizers that deal with dense, sparse, or matrix-free problems. While the first targeted application is Robotics, ProxSuite can be used in other contexts without limits.
ProxSuite is actively developed and supported by the Willow and Sierra research groups, joint research teams between Inria, École Normale Supérieure de Paris and Centre National de la Recherche Scientifique localized in France.
ProxSuite is already integrated into:
- CVXPY modeling language for convex optimization problems,
- CasADi’s symbolic framework for numerical optimization in general and optimal control. ProxQP is available in CasADi as a plugin to solve quadratic programs,
- TSID: robotic software for efficient robot inverse dynamics with contacts and based on Pinocchio.
We are ready to integrate ProxSuite within other optimization ecosystems.
ProxSuite main features
Proxsuite is fast:
- C++ template library,
- cache-friendly.
Proxsuite is versatile, offering through a unified API advanced algorithms specialized for efficiently exploiting problem structures:
- dense, sparse, and matrix-free matrix factorization backends,
- advanced warm-starting options (e.g., equality-constrained initial guess, warm-start or cold-start options from previous results),
with dedicated features for
- handling more efficiently box constraints, linear programs, QP with diagonal Hessian, or with far more constraints than primal variables,
- solving nonconvex QPs,
- solving batches of QPs in parallel,
- solving the closest feasible QP if the QP appears to be primal infeasible,
- differentiating feasible and infeasible QPs.
Proxsuite is flexible:
- header only,
- C++ 14/17/20 compliant,
- Python and Julia bindings for easy code prototyping without sacrificing performance.
Proxsuite is extensible. Proxsuite is reliable and extensively tested, showing the best performances on the hardest problems of the literature. Proxsuite is supported and tested on Windows, Mac OS X, Unix, and Linux.
Documentation
The online ProxSuite documentation of the last release is available here.
Getting started
ProxSuite is distributed to many well-known package managers.
Quick install with
:
pip install proxsuite
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
conda install proxsuite -c conda-forge
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
brew install proxsuite
This approach is available on Linux and Mac OS X.
Alternative approaches
Installation from source is presented here.
Compiling a first example program
For the fastest performance, use the following command to enable vectorization when compiling the simple example.
g++ -O3 -march=native -DNDEBUG -std=gnu++17 -DPROXSUITE_VECTORIZE examples/first_example_dense.cpp -o first_example_dense $(pkg-config --cflags proxsuite)
Using ProxSuite with CMake
If you want to use ProxSuite with CMake, the following tiny example should help you:
```cmake cmake_minimum_required(VERSION 3.10)
project(Example CXX) find_package(proxsuite REQUIRED) set(CMAKE_CXX_STANDARD 17) # set(CMAKE_CXX_STANDARD 14) will work too
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#395)
[0.7.2] - 2025-03-12
Fixed
- Fix an arcane compilation issue on Clang-19 (#379)
- Replace
!= None
withis not None
in 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_gil
for dense backend (multithreading via python) (#363) - Add benchmarks for
solve_no_gil
vssolve_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_solving
toFalse
for 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
’sbackward
function (#297)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
autoware_qp_interface |
Launch files
Messages
Services
Plugins
Recent questions tagged proxsuite at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.7.2 |
License | BSD-2 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Simple-Robotics/proxsuite.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
Authors
- Antoine Bambade
- Adrien Taylor
- Fabian Schramm
- Sarah El-Kazdadi
- Justin Carpentier
ProxSuite is a collection of open-source, numerically robust, precise, and efficient numerical solvers (e.g., LPs, QPs, etc.) rooted in revisited primal-dual proximal algorithms. Through ProxSuite, we aim to offer the community scalable optimizers that deal with dense, sparse, or matrix-free problems. While the first targeted application is Robotics, ProxSuite can be used in other contexts without limits.
ProxSuite is actively developed and supported by the Willow and Sierra research groups, joint research teams between Inria, École Normale Supérieure de Paris and Centre National de la Recherche Scientifique localized in France.
ProxSuite is already integrated into:
- CVXPY modeling language for convex optimization problems,
- CasADi’s symbolic framework for numerical optimization in general and optimal control. ProxQP is available in CasADi as a plugin to solve quadratic programs,
- TSID: robotic software for efficient robot inverse dynamics with contacts and based on Pinocchio.
We are ready to integrate ProxSuite within other optimization ecosystems.
ProxSuite main features
Proxsuite is fast:
- C++ template library,
- cache-friendly.
Proxsuite is versatile, offering through a unified API advanced algorithms specialized for efficiently exploiting problem structures:
- dense, sparse, and matrix-free matrix factorization backends,
- advanced warm-starting options (e.g., equality-constrained initial guess, warm-start or cold-start options from previous results),
with dedicated features for
- handling more efficiently box constraints, linear programs, QP with diagonal Hessian, or with far more constraints than primal variables,
- solving nonconvex QPs,
- solving batches of QPs in parallel,
- solving the closest feasible QP if the QP appears to be primal infeasible,
- differentiating feasible and infeasible QPs.
Proxsuite is flexible:
- header only,
- C++ 14/17/20 compliant,
- Python and Julia bindings for easy code prototyping without sacrificing performance.
Proxsuite is extensible. Proxsuite is reliable and extensively tested, showing the best performances on the hardest problems of the literature. Proxsuite is supported and tested on Windows, Mac OS X, Unix, and Linux.
Documentation
The online ProxSuite documentation of the last release is available here.
Getting started
ProxSuite is distributed to many well-known package managers.
Quick install with
:
pip install proxsuite
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
conda install proxsuite -c conda-forge
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
brew install proxsuite
This approach is available on Linux and Mac OS X.
Alternative approaches
Installation from source is presented here.
Compiling a first example program
For the fastest performance, use the following command to enable vectorization when compiling the simple example.
g++ -O3 -march=native -DNDEBUG -std=gnu++17 -DPROXSUITE_VECTORIZE examples/first_example_dense.cpp -o first_example_dense $(pkg-config --cflags proxsuite)
Using ProxSuite with CMake
If you want to use ProxSuite with CMake, the following tiny example should help you:
```cmake cmake_minimum_required(VERSION 3.10)
project(Example CXX) find_package(proxsuite REQUIRED) set(CMAKE_CXX_STANDARD 17) # set(CMAKE_CXX_STANDARD 14) will work too
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#395)
[0.7.2] - 2025-03-12
Fixed
- Fix an arcane compilation issue on Clang-19 (#379)
- Replace
!= None
withis not None
in 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_gil
for dense backend (multithreading via python) (#363) - Add benchmarks for
solve_no_gil
vssolve_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_solving
toFalse
for 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
’sbackward
function (#297)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged proxsuite at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.7.2 |
License | BSD-2 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Simple-Robotics/proxsuite.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
Authors
- Antoine Bambade
- Adrien Taylor
- Fabian Schramm
- Sarah El-Kazdadi
- Justin Carpentier
ProxSuite is a collection of open-source, numerically robust, precise, and efficient numerical solvers (e.g., LPs, QPs, etc.) rooted in revisited primal-dual proximal algorithms. Through ProxSuite, we aim to offer the community scalable optimizers that deal with dense, sparse, or matrix-free problems. While the first targeted application is Robotics, ProxSuite can be used in other contexts without limits.
ProxSuite is actively developed and supported by the Willow and Sierra research groups, joint research teams between Inria, École Normale Supérieure de Paris and Centre National de la Recherche Scientifique localized in France.
ProxSuite is already integrated into:
- CVXPY modeling language for convex optimization problems,
- CasADi’s symbolic framework for numerical optimization in general and optimal control. ProxQP is available in CasADi as a plugin to solve quadratic programs,
- TSID: robotic software for efficient robot inverse dynamics with contacts and based on Pinocchio.
We are ready to integrate ProxSuite within other optimization ecosystems.
ProxSuite main features
Proxsuite is fast:
- C++ template library,
- cache-friendly.
Proxsuite is versatile, offering through a unified API advanced algorithms specialized for efficiently exploiting problem structures:
- dense, sparse, and matrix-free matrix factorization backends,
- advanced warm-starting options (e.g., equality-constrained initial guess, warm-start or cold-start options from previous results),
with dedicated features for
- handling more efficiently box constraints, linear programs, QP with diagonal Hessian, or with far more constraints than primal variables,
- solving nonconvex QPs,
- solving batches of QPs in parallel,
- solving the closest feasible QP if the QP appears to be primal infeasible,
- differentiating feasible and infeasible QPs.
Proxsuite is flexible:
- header only,
- C++ 14/17/20 compliant,
- Python and Julia bindings for easy code prototyping without sacrificing performance.
Proxsuite is extensible. Proxsuite is reliable and extensively tested, showing the best performances on the hardest problems of the literature. Proxsuite is supported and tested on Windows, Mac OS X, Unix, and Linux.
Documentation
The online ProxSuite documentation of the last release is available here.
Getting started
ProxSuite is distributed to many well-known package managers.
Quick install with
:
pip install proxsuite
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
conda install proxsuite -c conda-forge
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
brew install proxsuite
This approach is available on Linux and Mac OS X.
Alternative approaches
Installation from source is presented here.
Compiling a first example program
For the fastest performance, use the following command to enable vectorization when compiling the simple example.
g++ -O3 -march=native -DNDEBUG -std=gnu++17 -DPROXSUITE_VECTORIZE examples/first_example_dense.cpp -o first_example_dense $(pkg-config --cflags proxsuite)
Using ProxSuite with CMake
If you want to use ProxSuite with CMake, the following tiny example should help you:
```cmake cmake_minimum_required(VERSION 3.10)
project(Example CXX) find_package(proxsuite REQUIRED) set(CMAKE_CXX_STANDARD 17) # set(CMAKE_CXX_STANDARD 14) will work too
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#395)
[0.7.2] - 2025-03-12
Fixed
- Fix an arcane compilation issue on Clang-19 (#379)
- Replace
!= None
withis not None
in 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_gil
for dense backend (multithreading via python) (#363) - Add benchmarks for
solve_no_gil
vssolve_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_solving
toFalse
for 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
’sbackward
function (#297)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
autoware_qp_interface |
Launch files
Messages
Services
Plugins
Recent questions tagged proxsuite at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.7.2 |
License | BSD-2 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Simple-Robotics/proxsuite.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
Authors
- Antoine Bambade
- Adrien Taylor
- Fabian Schramm
- Sarah El-Kazdadi
- Justin Carpentier
ProxSuite is a collection of open-source, numerically robust, precise, and efficient numerical solvers (e.g., LPs, QPs, etc.) rooted in revisited primal-dual proximal algorithms. Through ProxSuite, we aim to offer the community scalable optimizers that deal with dense, sparse, or matrix-free problems. While the first targeted application is Robotics, ProxSuite can be used in other contexts without limits.
ProxSuite is actively developed and supported by the Willow and Sierra research groups, joint research teams between Inria, École Normale Supérieure de Paris and Centre National de la Recherche Scientifique localized in France.
ProxSuite is already integrated into:
- CVXPY modeling language for convex optimization problems,
- CasADi’s symbolic framework for numerical optimization in general and optimal control. ProxQP is available in CasADi as a plugin to solve quadratic programs,
- TSID: robotic software for efficient robot inverse dynamics with contacts and based on Pinocchio.
We are ready to integrate ProxSuite within other optimization ecosystems.
ProxSuite main features
Proxsuite is fast:
- C++ template library,
- cache-friendly.
Proxsuite is versatile, offering through a unified API advanced algorithms specialized for efficiently exploiting problem structures:
- dense, sparse, and matrix-free matrix factorization backends,
- advanced warm-starting options (e.g., equality-constrained initial guess, warm-start or cold-start options from previous results),
with dedicated features for
- handling more efficiently box constraints, linear programs, QP with diagonal Hessian, or with far more constraints than primal variables,
- solving nonconvex QPs,
- solving batches of QPs in parallel,
- solving the closest feasible QP if the QP appears to be primal infeasible,
- differentiating feasible and infeasible QPs.
Proxsuite is flexible:
- header only,
- C++ 14/17/20 compliant,
- Python and Julia bindings for easy code prototyping without sacrificing performance.
Proxsuite is extensible. Proxsuite is reliable and extensively tested, showing the best performances on the hardest problems of the literature. Proxsuite is supported and tested on Windows, Mac OS X, Unix, and Linux.
Documentation
The online ProxSuite documentation of the last release is available here.
Getting started
ProxSuite is distributed to many well-known package managers.
Quick install with
:
pip install proxsuite
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
conda install proxsuite -c conda-forge
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
brew install proxsuite
This approach is available on Linux and Mac OS X.
Alternative approaches
Installation from source is presented here.
Compiling a first example program
For the fastest performance, use the following command to enable vectorization when compiling the simple example.
g++ -O3 -march=native -DNDEBUG -std=gnu++17 -DPROXSUITE_VECTORIZE examples/first_example_dense.cpp -o first_example_dense $(pkg-config --cflags proxsuite)
Using ProxSuite with CMake
If you want to use ProxSuite with CMake, the following tiny example should help you:
```cmake cmake_minimum_required(VERSION 3.10)
project(Example CXX) find_package(proxsuite REQUIRED) set(CMAKE_CXX_STANDARD 17) # set(CMAKE_CXX_STANDARD 14) will work too
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#395)
[0.7.2] - 2025-03-12
Fixed
- Fix an arcane compilation issue on Clang-19 (#379)
- Replace
!= None
withis not None
in 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_gil
for dense backend (multithreading via python) (#363) - Add benchmarks for
solve_no_gil
vssolve_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_solving
toFalse
for 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
’sbackward
function (#297)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
autoware_qp_interface |
Launch files
Messages
Services
Plugins
Recent questions tagged proxsuite at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.7.2 |
License | BSD-2 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Simple-Robotics/proxsuite.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
Authors
- Antoine Bambade
- Adrien Taylor
- Fabian Schramm
- Sarah El-Kazdadi
- Justin Carpentier
ProxSuite is a collection of open-source, numerically robust, precise, and efficient numerical solvers (e.g., LPs, QPs, etc.) rooted in revisited primal-dual proximal algorithms. Through ProxSuite, we aim to offer the community scalable optimizers that deal with dense, sparse, or matrix-free problems. While the first targeted application is Robotics, ProxSuite can be used in other contexts without limits.
ProxSuite is actively developed and supported by the Willow and Sierra research groups, joint research teams between Inria, École Normale Supérieure de Paris and Centre National de la Recherche Scientifique localized in France.
ProxSuite is already integrated into:
- CVXPY modeling language for convex optimization problems,
- CasADi’s symbolic framework for numerical optimization in general and optimal control. ProxQP is available in CasADi as a plugin to solve quadratic programs,
- TSID: robotic software for efficient robot inverse dynamics with contacts and based on Pinocchio.
We are ready to integrate ProxSuite within other optimization ecosystems.
ProxSuite main features
Proxsuite is fast:
- C++ template library,
- cache-friendly.
Proxsuite is versatile, offering through a unified API advanced algorithms specialized for efficiently exploiting problem structures:
- dense, sparse, and matrix-free matrix factorization backends,
- advanced warm-starting options (e.g., equality-constrained initial guess, warm-start or cold-start options from previous results),
with dedicated features for
- handling more efficiently box constraints, linear programs, QP with diagonal Hessian, or with far more constraints than primal variables,
- solving nonconvex QPs,
- solving batches of QPs in parallel,
- solving the closest feasible QP if the QP appears to be primal infeasible,
- differentiating feasible and infeasible QPs.
Proxsuite is flexible:
- header only,
- C++ 14/17/20 compliant,
- Python and Julia bindings for easy code prototyping without sacrificing performance.
Proxsuite is extensible. Proxsuite is reliable and extensively tested, showing the best performances on the hardest problems of the literature. Proxsuite is supported and tested on Windows, Mac OS X, Unix, and Linux.
Documentation
The online ProxSuite documentation of the last release is available here.
Getting started
ProxSuite is distributed to many well-known package managers.
Quick install with
:
pip install proxsuite
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
conda install proxsuite -c conda-forge
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
brew install proxsuite
This approach is available on Linux and Mac OS X.
Alternative approaches
Installation from source is presented here.
Compiling a first example program
For the fastest performance, use the following command to enable vectorization when compiling the simple example.
g++ -O3 -march=native -DNDEBUG -std=gnu++17 -DPROXSUITE_VECTORIZE examples/first_example_dense.cpp -o first_example_dense $(pkg-config --cflags proxsuite)
Using ProxSuite with CMake
If you want to use ProxSuite with CMake, the following tiny example should help you:
```cmake cmake_minimum_required(VERSION 3.10)
project(Example CXX) find_package(proxsuite REQUIRED) set(CMAKE_CXX_STANDARD 17) # set(CMAKE_CXX_STANDARD 14) will work too
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#395)
[0.7.2] - 2025-03-12
Fixed
- Fix an arcane compilation issue on Clang-19 (#379)
- Replace
!= None
withis not None
in 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_gil
for dense backend (multithreading via python) (#363) - Add benchmarks for
solve_no_gil
vssolve_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_solving
toFalse
for 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
’sbackward
function (#297)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
autoware_qp_interface |
Launch files
Messages
Services
Plugins
Recent questions tagged proxsuite at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.7.2 |
License | BSD-2 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Simple-Robotics/proxsuite.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
Authors
- Antoine Bambade
- Adrien Taylor
- Fabian Schramm
- Sarah El-Kazdadi
- Justin Carpentier
ProxSuite is a collection of open-source, numerically robust, precise, and efficient numerical solvers (e.g., LPs, QPs, etc.) rooted in revisited primal-dual proximal algorithms. Through ProxSuite, we aim to offer the community scalable optimizers that deal with dense, sparse, or matrix-free problems. While the first targeted application is Robotics, ProxSuite can be used in other contexts without limits.
ProxSuite is actively developed and supported by the Willow and Sierra research groups, joint research teams between Inria, École Normale Supérieure de Paris and Centre National de la Recherche Scientifique localized in France.
ProxSuite is already integrated into:
- CVXPY modeling language for convex optimization problems,
- CasADi’s symbolic framework for numerical optimization in general and optimal control. ProxQP is available in CasADi as a plugin to solve quadratic programs,
- TSID: robotic software for efficient robot inverse dynamics with contacts and based on Pinocchio.
We are ready to integrate ProxSuite within other optimization ecosystems.
ProxSuite main features
Proxsuite is fast:
- C++ template library,
- cache-friendly.
Proxsuite is versatile, offering through a unified API advanced algorithms specialized for efficiently exploiting problem structures:
- dense, sparse, and matrix-free matrix factorization backends,
- advanced warm-starting options (e.g., equality-constrained initial guess, warm-start or cold-start options from previous results),
with dedicated features for
- handling more efficiently box constraints, linear programs, QP with diagonal Hessian, or with far more constraints than primal variables,
- solving nonconvex QPs,
- solving batches of QPs in parallel,
- solving the closest feasible QP if the QP appears to be primal infeasible,
- differentiating feasible and infeasible QPs.
Proxsuite is flexible:
- header only,
- C++ 14/17/20 compliant,
- Python and Julia bindings for easy code prototyping without sacrificing performance.
Proxsuite is extensible. Proxsuite is reliable and extensively tested, showing the best performances on the hardest problems of the literature. Proxsuite is supported and tested on Windows, Mac OS X, Unix, and Linux.
Documentation
The online ProxSuite documentation of the last release is available here.
Getting started
ProxSuite is distributed to many well-known package managers.
Quick install with
:
pip install proxsuite
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
conda install proxsuite -c conda-forge
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
brew install proxsuite
This approach is available on Linux and Mac OS X.
Alternative approaches
Installation from source is presented here.
Compiling a first example program
For the fastest performance, use the following command to enable vectorization when compiling the simple example.
g++ -O3 -march=native -DNDEBUG -std=gnu++17 -DPROXSUITE_VECTORIZE examples/first_example_dense.cpp -o first_example_dense $(pkg-config --cflags proxsuite)
Using ProxSuite with CMake
If you want to use ProxSuite with CMake, the following tiny example should help you:
```cmake cmake_minimum_required(VERSION 3.10)
project(Example CXX) find_package(proxsuite REQUIRED) set(CMAKE_CXX_STANDARD 17) # set(CMAKE_CXX_STANDARD 14) will work too
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#395)
[0.7.2] - 2025-03-12
Fixed
- Fix an arcane compilation issue on Clang-19 (#379)
- Replace
!= None
withis not None
in 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_gil
for dense backend (multithreading via python) (#363) - Add benchmarks for
solve_no_gil
vssolve_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_solving
toFalse
for 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
’sbackward
function (#297)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
autoware_qp_interface |
Launch files
Messages
Services
Plugins
Recent questions tagged proxsuite at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.7.2 |
License | BSD-2 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Simple-Robotics/proxsuite.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
Authors
- Antoine Bambade
- Adrien Taylor
- Fabian Schramm
- Sarah El-Kazdadi
- Justin Carpentier
ProxSuite is a collection of open-source, numerically robust, precise, and efficient numerical solvers (e.g., LPs, QPs, etc.) rooted in revisited primal-dual proximal algorithms. Through ProxSuite, we aim to offer the community scalable optimizers that deal with dense, sparse, or matrix-free problems. While the first targeted application is Robotics, ProxSuite can be used in other contexts without limits.
ProxSuite is actively developed and supported by the Willow and Sierra research groups, joint research teams between Inria, École Normale Supérieure de Paris and Centre National de la Recherche Scientifique localized in France.
ProxSuite is already integrated into:
- CVXPY modeling language for convex optimization problems,
- CasADi’s symbolic framework for numerical optimization in general and optimal control. ProxQP is available in CasADi as a plugin to solve quadratic programs,
- TSID: robotic software for efficient robot inverse dynamics with contacts and based on Pinocchio.
We are ready to integrate ProxSuite within other optimization ecosystems.
ProxSuite main features
Proxsuite is fast:
- C++ template library,
- cache-friendly.
Proxsuite is versatile, offering through a unified API advanced algorithms specialized for efficiently exploiting problem structures:
- dense, sparse, and matrix-free matrix factorization backends,
- advanced warm-starting options (e.g., equality-constrained initial guess, warm-start or cold-start options from previous results),
with dedicated features for
- handling more efficiently box constraints, linear programs, QP with diagonal Hessian, or with far more constraints than primal variables,
- solving nonconvex QPs,
- solving batches of QPs in parallel,
- solving the closest feasible QP if the QP appears to be primal infeasible,
- differentiating feasible and infeasible QPs.
Proxsuite is flexible:
- header only,
- C++ 14/17/20 compliant,
- Python and Julia bindings for easy code prototyping without sacrificing performance.
Proxsuite is extensible. Proxsuite is reliable and extensively tested, showing the best performances on the hardest problems of the literature. Proxsuite is supported and tested on Windows, Mac OS X, Unix, and Linux.
Documentation
The online ProxSuite documentation of the last release is available here.
Getting started
ProxSuite is distributed to many well-known package managers.
Quick install with
:
pip install proxsuite
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
conda install proxsuite -c conda-forge
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
brew install proxsuite
This approach is available on Linux and Mac OS X.
Alternative approaches
Installation from source is presented here.
Compiling a first example program
For the fastest performance, use the following command to enable vectorization when compiling the simple example.
g++ -O3 -march=native -DNDEBUG -std=gnu++17 -DPROXSUITE_VECTORIZE examples/first_example_dense.cpp -o first_example_dense $(pkg-config --cflags proxsuite)
Using ProxSuite with CMake
If you want to use ProxSuite with CMake, the following tiny example should help you:
```cmake cmake_minimum_required(VERSION 3.10)
project(Example CXX) find_package(proxsuite REQUIRED) set(CMAKE_CXX_STANDARD 17) # set(CMAKE_CXX_STANDARD 14) will work too
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#395)
[0.7.2] - 2025-03-12
Fixed
- Fix an arcane compilation issue on Clang-19 (#379)
- Replace
!= None
withis not None
in 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_gil
for dense backend (multithreading via python) (#363) - Add benchmarks for
solve_no_gil
vssolve_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_solving
toFalse
for 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
’sbackward
function (#297)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
autoware_qp_interface |
Launch files
Messages
Services
Plugins
Recent questions tagged proxsuite at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.7.2 |
License | BSD-2 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Simple-Robotics/proxsuite.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
Authors
- Antoine Bambade
- Adrien Taylor
- Fabian Schramm
- Sarah El-Kazdadi
- Justin Carpentier
ProxSuite is a collection of open-source, numerically robust, precise, and efficient numerical solvers (e.g., LPs, QPs, etc.) rooted in revisited primal-dual proximal algorithms. Through ProxSuite, we aim to offer the community scalable optimizers that deal with dense, sparse, or matrix-free problems. While the first targeted application is Robotics, ProxSuite can be used in other contexts without limits.
ProxSuite is actively developed and supported by the Willow and Sierra research groups, joint research teams between Inria, École Normale Supérieure de Paris and Centre National de la Recherche Scientifique localized in France.
ProxSuite is already integrated into:
- CVXPY modeling language for convex optimization problems,
- CasADi’s symbolic framework for numerical optimization in general and optimal control. ProxQP is available in CasADi as a plugin to solve quadratic programs,
- TSID: robotic software for efficient robot inverse dynamics with contacts and based on Pinocchio.
We are ready to integrate ProxSuite within other optimization ecosystems.
ProxSuite main features
Proxsuite is fast:
- C++ template library,
- cache-friendly.
Proxsuite is versatile, offering through a unified API advanced algorithms specialized for efficiently exploiting problem structures:
- dense, sparse, and matrix-free matrix factorization backends,
- advanced warm-starting options (e.g., equality-constrained initial guess, warm-start or cold-start options from previous results),
with dedicated features for
- handling more efficiently box constraints, linear programs, QP with diagonal Hessian, or with far more constraints than primal variables,
- solving nonconvex QPs,
- solving batches of QPs in parallel,
- solving the closest feasible QP if the QP appears to be primal infeasible,
- differentiating feasible and infeasible QPs.
Proxsuite is flexible:
- header only,
- C++ 14/17/20 compliant,
- Python and Julia bindings for easy code prototyping without sacrificing performance.
Proxsuite is extensible. Proxsuite is reliable and extensively tested, showing the best performances on the hardest problems of the literature. Proxsuite is supported and tested on Windows, Mac OS X, Unix, and Linux.
Documentation
The online ProxSuite documentation of the last release is available here.
Getting started
ProxSuite is distributed to many well-known package managers.
Quick install with
:
pip install proxsuite
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
conda install proxsuite -c conda-forge
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
brew install proxsuite
This approach is available on Linux and Mac OS X.
Alternative approaches
Installation from source is presented here.
Compiling a first example program
For the fastest performance, use the following command to enable vectorization when compiling the simple example.
g++ -O3 -march=native -DNDEBUG -std=gnu++17 -DPROXSUITE_VECTORIZE examples/first_example_dense.cpp -o first_example_dense $(pkg-config --cflags proxsuite)
Using ProxSuite with CMake
If you want to use ProxSuite with CMake, the following tiny example should help you:
```cmake cmake_minimum_required(VERSION 3.10)
project(Example CXX) find_package(proxsuite REQUIRED) set(CMAKE_CXX_STANDARD 17) # set(CMAKE_CXX_STANDARD 14) will work too
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#395)
[0.7.2] - 2025-03-12
Fixed
- Fix an arcane compilation issue on Clang-19 (#379)
- Replace
!= None
withis not None
in 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_gil
for dense backend (multithreading via python) (#363) - Add benchmarks for
solve_no_gil
vssolve_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_solving
toFalse
for 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
’sbackward
function (#297)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
autoware_qp_interface |
Launch files
Messages
Services
Plugins
Recent questions tagged proxsuite at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.7.2 |
License | BSD-2 |
Build type | CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/Simple-Robotics/proxsuite.git |
VCS Type | git |
VCS Version | devel |
Last Updated | 2025-06-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Justin Carpentier
- Wolfgang Merkt
Authors
- Antoine Bambade
- Adrien Taylor
- Fabian Schramm
- Sarah El-Kazdadi
- Justin Carpentier
ProxSuite is a collection of open-source, numerically robust, precise, and efficient numerical solvers (e.g., LPs, QPs, etc.) rooted in revisited primal-dual proximal algorithms. Through ProxSuite, we aim to offer the community scalable optimizers that deal with dense, sparse, or matrix-free problems. While the first targeted application is Robotics, ProxSuite can be used in other contexts without limits.
ProxSuite is actively developed and supported by the Willow and Sierra research groups, joint research teams between Inria, École Normale Supérieure de Paris and Centre National de la Recherche Scientifique localized in France.
ProxSuite is already integrated into:
- CVXPY modeling language for convex optimization problems,
- CasADi’s symbolic framework for numerical optimization in general and optimal control. ProxQP is available in CasADi as a plugin to solve quadratic programs,
- TSID: robotic software for efficient robot inverse dynamics with contacts and based on Pinocchio.
We are ready to integrate ProxSuite within other optimization ecosystems.
ProxSuite main features
Proxsuite is fast:
- C++ template library,
- cache-friendly.
Proxsuite is versatile, offering through a unified API advanced algorithms specialized for efficiently exploiting problem structures:
- dense, sparse, and matrix-free matrix factorization backends,
- advanced warm-starting options (e.g., equality-constrained initial guess, warm-start or cold-start options from previous results),
with dedicated features for
- handling more efficiently box constraints, linear programs, QP with diagonal Hessian, or with far more constraints than primal variables,
- solving nonconvex QPs,
- solving batches of QPs in parallel,
- solving the closest feasible QP if the QP appears to be primal infeasible,
- differentiating feasible and infeasible QPs.
Proxsuite is flexible:
- header only,
- C++ 14/17/20 compliant,
- Python and Julia bindings for easy code prototyping without sacrificing performance.
Proxsuite is extensible. Proxsuite is reliable and extensively tested, showing the best performances on the hardest problems of the literature. Proxsuite is supported and tested on Windows, Mac OS X, Unix, and Linux.
Documentation
The online ProxSuite documentation of the last release is available here.
Getting started
ProxSuite is distributed to many well-known package managers.
Quick install with
:
pip install proxsuite
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
conda install proxsuite -c conda-forge
This approach is available on Linux, Windows and Mac OS X.
Quick install with
:
brew install proxsuite
This approach is available on Linux and Mac OS X.
Alternative approaches
Installation from source is presented here.
Compiling a first example program
For the fastest performance, use the following command to enable vectorization when compiling the simple example.
g++ -O3 -march=native -DNDEBUG -std=gnu++17 -DPROXSUITE_VECTORIZE examples/first_example_dense.cpp -o first_example_dense $(pkg-config --cflags proxsuite)
Using ProxSuite with CMake
If you want to use ProxSuite with CMake, the following tiny example should help you:
```cmake cmake_minimum_required(VERSION 3.10)
project(Example CXX) find_package(proxsuite REQUIRED) set(CMAKE_CXX_STANDARD 17) # set(CMAKE_CXX_STANDARD 14) will work too
File truncated at 100 lines see the full file
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
Changed
- Change the default branch to
devel
(#395)
[0.7.2] - 2025-03-12
Fixed
- Fix an arcane compilation issue on Clang-19 (#379)
- Replace
!= None
withis not None
in 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_gil
for dense backend (multithreading via python) (#363) - Add benchmarks for
solve_no_gil
vssolve_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_solving
toFalse
for 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
’sbackward
function (#297)
File truncated at 100 lines see the full file
Wiki Tutorials
Dependant Packages
Name | Deps |
---|---|
autoware_qp_interface |