https://github.com/darnstrom/daqp
A dual active-set algorithm for convex quadratic programming
https://github.com/darnstrom/daqp
active-set-method control model-predictive-control numerical-optimization optimization quadratic-programming
Last synced: 5 days ago
JSON representation
A dual active-set algorithm for convex quadratic programming
- Host: GitHub
- URL: https://github.com/darnstrom/daqp
- Owner: darnstrom
- License: mit
- Created: 2021-09-06T07:46:36.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2026-01-18T12:06:52.000Z (about 1 month ago)
- Last Synced: 2026-01-18T18:56:17.724Z (about 1 month ago)
- Topics: active-set-method, control, model-predictive-control, numerical-optimization, optimization, quadratic-programming
- Language: C
- Homepage:
- Size: 542 KB
- Stars: 96
- Watchers: 4
- Forks: 18
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# DAQP
[](https://opensource.org/licenses/MIT)
[](https://darnstrom.github.io/daqp)
DAQP is a dual active-set solver that solves convex quadratic programs of the form
```
minimize 0.5 x' H x + f' x
subject to l <= x <= u
bl <= Ax <= bu.
```
Binary constraints of the form $A x \in \lbrace b_l, b_u \rbrace$ are also supported, allowing for mixed-integer quadratic programs to be solved.
The code is written in C and is *library free*. DAQP can be interfaced to C, Julia, MATLAB, and Python.
## Quick installation
### Julia
```bash
] add DAQP
```
### MATLAB
```bash
websave('install_daqp','https://raw.githubusercontent.com/darnstrom/daqp/master/interfaces/daqp-matlab/install_daqp.m')
install_daqp
```
### Python
```bash
pip install daqp
```
### Details
See the [Documentation](https://darnstrom.github.io/daqp/start) for more detailed installation instructions and basic use of the interfaces.
## Citing DAQP
```
@article{arnstrom2022dual,
author={Arnström, Daniel and Bemporad, Alberto and Axehill, Daniel},
journal={IEEE Transactions on Automatic Control},
title={A Dual Active-Set Solver for Embedded Quadratic Programming Using Recursive {LDL}$^{T}$ Updates},
year={2022},
volume={67},
number={8},
pages={4362-4369},
doi={10.1109/TAC.2022.3176430}
}
```