All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
0.6.6 - 2024-06-15
- Fix infeasibility detection and add a unit test (#328)
0.6.5 - 2024-05-31
- Pip wheels for Python 3.12 and stop support Python 3.7 (#324)
- Fixes compilation issue with GCC 14 on Arch (#322)
- 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
- Changed
primal_infeasibility_solving
toFalse
for feasible QPs (#302)
0.6.3 - 2024-01-23
- Fix Python tests with scipy>=1.12 (#299)
0.6.2 - 2024-01-22
- 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)
0.6.1 - 2023-11-16
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#280)
- Templating power iteration algorithm by matrix storage order by @quentinll (#279)
- @quentinll made their first contribution (#279)
0.6.0 - 2023-11-13
We add the implementation of QPLayer. QPLayer enables to use a QP as a layer within standard learning architectures. QPLayer allows for parallelized calculus over CPUs, and is interfaced with PyTorch. QPLayer can also differentiate over LPs.
- QPLayer: efficient differentiation of convex quadratic optimization by @fabinsch, @Bambade and @quentinll (#264)
0.5.1 - 2023-11-09
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#265)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#268)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#269)
- Check model is_valid up to eps by @fabinsch (#272)
0.5.0 - 2023-09-26
This release adds support for nonconvex QPs, along with healthy fixes.
- Fix compilation (veg/memory) for gcc 7 and clang 7 by @costashatz (#255)
- Estimate minimal eigenvalue of quadratic cost hessian by @Bambade (#257)
- Fix typo #254 by @Bambade (#258)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#260)
- Sync submodule cmake by @jcarpent (#261)
- @costashatz made their first contribution (#255)
0.4.1 - 2023-08-02
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#247)
- Add Iros on ROS CI by @jcarpent (#248)
- Update default value for update_preconditioner by @jcarpent (#250)
0.4.0 - 2023-07-10
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#225)
- add generalized primal dual augmented Lagrangian (gpdal) for dense backend by @Bambade (#228)
- optimize dense iterative refinement by @Bambade (#230)
- Add dense LP interface by @Bambade (#231)
- Enable solving QP ([#229](parallel with ProxQP by @Bambade in #229))
- Add small dense LP Python example by @stephane-caron (#235)
- Fix typo ([#234](dense lp interface by @Bambade in #234))
- ci check all jobs pass by @fabinsch (#236)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#232)
- Add box constraint interface for dense backend by @Bambade (#238)
- Improve dense backend and simplify calculus when using a Diagonal Hessian by @Bambade (#239)
- Add infeasibility solving feature for dense and sparse backends by @Bambade (#241)
- cmake: fix path to find-external/OpenMP by @fabinsch (#240)
- More information ([#242](debug mode by @fabinsch in #242))
- Fix warning and clean // solvers API by @jcarpent (#243)
0.3.7 - 2023-05-05
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#206)
- Define PROXSUITE_AS_SUBPROJECT as ON by @amiller27 (#207)
- Sync submodule cmake by @jcarpent (#208)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#210)
- Set default CMAKE_BUILD_TYPE value by @jcarpent (#211)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#214)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#215)
- Set simde dependency for ROS2 Iron as well by @wxmerkt (#218)
- Sync submodule CMake by @jcarpent (#219)
- @amiller27 made their first contribution (#207)
0.3.6 - 2023-03-14
- ci/linux-wheels: fix naming for artifacts by @fabinsch (#198)
- pip wheels for aarch64 by @fabinsch (#202)
0.3.5 - 2023-03-06
- doc: pip install available on windows by @fabinsch (#189)
- set compute_timings = true by @fabinsch (#191)
- [minor] Clean up invalid link from pyproject.toml by @stephane-caron (#193)
- ci/linux: fix linux wheel compatibility by @fabinsch (#196)
0.3.4 - 2023-03-01
- CI: pip wheels on windows by @fabinsch (#185)
- [CI] ROS: Add friendly names; add TSID on Rolling as downstream test by @wxmerkt (#184)
- CI: simplify workflow on self-hosted M1 by @fabinsch (#187)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#172)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#174)
- cmake: add option BUILD_DOCUMENTATION by @fabinsch (#177)
- linalg/ldlt : mark p() and pt() permutation matrix getters const by @ManifoldFR (#180)
- feat: enable simde ([#21](package.xml by @wep21)))) (#178)
- [CI] ROS: Activate prerelease by @wxmerkt (#181)
- @ManifoldFR made their first contribution (#180)
- @wep21 made their first contribution (#178)
0.3.2 - 2023-01-17
- Expose check_duality_gap ([#167](Python settings by @stephane-caron in #167))
- Add duality-gap thresholds by @stephane-caron (#169)
- @stephane-caron made their first contribution (#167)
0.3.1 - 2023-01-09
- Fix package.xml and add ROS-CI by @wxmerkt (#158)
- ROS-CI: Debug and Release builds, fix warnings by @wxmerkt (#159)
- Fix computation of duality gap quantity by @jcarpent (#163)
- Sync submodule cmake by @jcarpent (#164)
0.3.0 - 2022-12-26
- Add serialization of dense qp model using cereal by @fabinsch (#152)
- transposeInPlace only if eigen >= 3.4.0 by @fabinsch (#153)
- Fix Windows C++20 compatibility by @jcarpent (#155)
0.2.16 - 2022-12-21
- Fix default parameter values for compute_timings by @jcarpent (#146)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#147)
- Fix packaging issue on Windows by @jcarpent (#149)
0.2.15 - 2022-12-15
0.2.14 - 2022-12-14
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#134)
- update benchmarks random mixed qp by @fabinsch (#137)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#138)
- add is_valid function for dense model and fix example + unittest by @fabinsch (#139)
0.2.13 - 2022-11-29
- Enforce check for other architectures by @jcarpent (#132)
- Fix support for POWERPC by @jcarpent (#133)
0.2.12 - 2022-11-26
0.2.11 - 2022-11-25
- Fix dimension check issues by @jcarpent (#125)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#124)
- Add is_initialized safeguard to workspace by @fabinsch (#126)
- Add simple cpp example by @fabinsch (#127)
0.2.10 - 2022-11-17
- Allow macOS Debug pipeline to fail -> checking for memory alloc by @fabinsch (#117)
- Devel by @jcarpent (#118)
- fix instructionset import by @fabinsch (#120)
0.2.9 - 2022-11-14
- Enforce robustness computation of duality gap by @jcarpent (#114)
- Assert primal/dual residual and dual gap != nan + add unittest by @fabinsch (#115)
0.2.8 - 2022-11-12
- Enforce constness and clean CMake by @jcarpent (#106)
- Add details on using ProxSuite with CMake projects by @jcarpent (#111)
- Add duality gap measure by @Bambade (#110)
0.2.7 - 2022-11-10
- CMakeLists: fix INTERFACE target compile definitions by @fabinsch (#97)
- sync submodule by @fabinsch (#98)
- Fixed temporaries ([#100](update() of dense wrapper by @fennel-labs in #100))
- Additional option to check eigen runtime malloc by @fabinsch (#93)
- @fennel-labs made their first contribution (#100)
0.2.6 - 2022-11-08
- User option sparse backend by @fabinsch (#84)
- CI for c++14 compatibility by @fabinsch (#88)
- Update README.md by @fabinsch (#89)
- CI: use v1.2 also for windows, add cxx_std to key by @fabinsch (#90)
- Fix heap allocation ([#92](dense solver by @jcarpent in #92))
0.2.5 - 2022-11-06
- C++14 compliant implementation of optional by @fabinsch (#78)
- C++14 compliant implementation of aligned_alloc by @fabinsch (#79)
- unittest/sparse-ruiz: replace checks with isApprox by @fabinsch (#83)
- Fix packaging for pip by @jcarpent (#82)
- Move optional.hpp to the right place by @jcarpent (#81)
- Fix logic and bug ([#85](warm_start by @jcarpent in #85))
0.2.4 - 2022-11-01
- Change eps_abs to a reasonable value by @jcarpent (#70)
- sparse/solver: use refactorize for matrix free solver by @fabinsch (#73)
- Enhance API by @jcarpent (#71)
- Correct documentation of bindings by @fabinsch (#72)
- Add pipeline with MSVC compiler by @fabinsch (#49)
- Fix epsilon relative stopping criteria by @fabinsch (#58)
- Handle empty inputs by @fabinsch (#59)
- Fix calculation of objection function value by @fabinsch (#60)
- Doc: matio link by @fabinsch (#61)
- Fix packaging issue by @jcarpent (#64)
- Change default model upper and lower bounds by @Bambade (#66)
- Fix API for bounds on the inequality constraints by @jcarpent (#67)
0.2.2 - 2022-10-19
- release: wheels for macos arm64 by @fabinsch (#53)
- Don't compile AVX Python bindings on non X86_64 arch by @jcarpent (#54)
- Fix existence of std::aligned_alloc on APPLE by @jcarpent (#55)
0.2.1 - 2022-10-18
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#43)
- Sync ma([#42](with devel by @jcarpent in #42))
- Fix compile options export for Windows by @jcarpent (#44)
- benchmark: document speed up by vectorization by @fabinsch (#48)
- Support ARM64 architecture by @fabinsch (#50)
0.2.0 - 2022-10-08
This release introduces a notable change ([#](the order of bounds constraints.)) As the API is not yet totally fixed, we have only increased the minor release version.
More to come ([#](a forthcoming release.))
- CI/release: fix uploading proxsuite wheels only by @fabinsch (#30)
- TEST-AUTOMERGE by @fabinsch (#31)
- Fix c++ documentation by @fabinsch (#32)
- Compilation MSVC by @aescande (#33)
- Add specific compile option for MSVC by @jcarpent (#35)
- Sync submodule CMake by @jcarpent (#37)
- Remove sparse sparse overload for dense backend by @Bambade (#36)
- change qp.init(H,g,A,b,C,u,l) into qp.init(H,g,A,b,C,l,u) by @Bambade (#39)
- Fix packaging issues and remove useless test files by @jcarpent (#40)
0.1.2 - 2022-09-26
- Support python 3.7 for proxsuite wheels by @fabinsch (#27)
- Add default proximal step sizes by @Bambade (#26)
- Sync submodule cmake by @jcarpent (#28)
0.1.1 - 2022-09-09
- add missing includes by @nim65s (#21)
- update README and sync submodule by @Bambade (#20)
- Fix packaging issues by @jcarpent (#23)
- Fix preconditioner by @fabinsch (#24)
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci (#25)
- Add more unittests by @fabinsch (#22)
- @nim65s made their first contribution (#21)
- @pre-commit-ci made their first contribution (#25)
0.1.0 - 2022-08-24
- Fix aligned alloc for old version of OSX target deployment by @jcarpent (#3)
- Fix documentation and the publishing pipeline by @jcarpent (#4)
- Bindings: expose qp solver output by @fabinsch (#11)
- provide initialization of solvers with None entries by @Bambade (#12)
- Fix packaging issues and add more packaging test by @jcarpent (#17)
- Use PROXSUITE_VECTORIZE and change logic by @jcarpent (#18)
- @jcarpent made their first contribution (#3)
- @fabinsch made their first contribution (#11)
- @Bambade made their first contribution (#12)
The first release of ProxSuite.