https://github.com/pharosabad/lightenqp.jl
A pure Julia implementation of OOQP
https://github.com/pharosabad/lightenqp.jl
interior-point-algorithms quadratic-programming
Last synced: 3 months ago
JSON representation
A pure Julia implementation of OOQP
- Host: GitHub
- URL: https://github.com/pharosabad/lightenqp.jl
- Owner: PharosAbad
- License: mit
- Created: 2023-01-19T17:30:46.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-05-10T03:37:25.000Z (about 3 years ago)
- Last Synced: 2025-10-21T12:03:28.274Z (7 months ago)
- Topics: interior-point-algorithms, quadratic-programming
- Language: Julia
- Homepage:
- Size: 47.9 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
___LightenQP.jl___
[](https://github.com/PharosAbad/LightenQP.jl/actions/workflows/CI.yml?query=branch%3Amain)
[](https://github.com/PharosAbad/LightenQP.jl/wiki)
A pure Julia implementation of OOQP
Features •
Installation •
License •
Documentation
**LightenQP.jl** solves the following convex quadratic programming problems (called `OOQP`):
$$
\begin{array}
[c]{cl}
\min & \frac{1}{2}\mathbf{x}^{\prime}\mathbf{Vx}+\mathbf{x}^{\prime}%
\mathbf{q}\\
s.t. & \mathbf{Ax}=\mathbf{b}\in\mathbb{R}^{M}\\
& \mathbf{Cx}\leq\mathbf{g}\in\mathbb{R}^{L}
\end{array}
$$
with positive semi-definite symmetric matrix $\mathbf{V}\in\mathbb{R}^{N\times N}$. The general quadratic programming formulation solved by `LightenQP` is (`OOQP + d≤x≤u + h≤Cx`)
$$
\begin{array}
[c]{cl}
\min & \frac{1}{2}\mathbf{x}^{\prime}\mathbf{Vx}+\mathbf{x}^{\prime}
\mathbf{q}\\
s.t. & \mathbf{Ax}=\mathbf{b}\in\mathbb{R}^{M}\\
& \mathbf{h}\leq\mathbf{Cx}\leq\mathbf{g}\in\mathbb{R}^{L}\\
& \boldsymbol{d}\leq\mathbf{x}\leq\boldsymbol{u}\in\mathbb{R}^{N}
\end{array}
$$
## Features
* __Light Weight__: 100+ lines Julia code. Which follows closely the the implementation of the C/C++ solver [OOQP](https://github.com/emgertz/OOQP)
* __Fast__: [Speed and Accuracy](https://github.com/PharosAbad/LightenQP.jl/wiki/Speed-and-Accuracy)
* __Versatile__: solving a general quadratic programming problem mentioned above. $\mathbf{V}$ can be positive definite or positive semi-definite
* __Open Source__: Our code is available on [GitHub](https://github.com/PharosAbad/LightenQP.jl) and distributed under the MIT License
* __Arbitrary Precision Arithmetic__: fully support for `BigFloat`
## Installation
__LightenQP.jl__ can be added by
- `import Pkg; Pkg.add("LightenQP")`
- `pkg> add LightenQP`
- `pkg> dev LightenQP` for testing nightly version. To use the registered version again `pkg> free LightenQP`
## License 🔍
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.