LightenQP.jl

A pure Julia implementation of OOQP
Author PharosAbad
Popularity
4 Stars
Updated Last
1 Year Ago
Started In
January 2023

LightenQP.jl

Build Status Stable

A pure Julia implementation of OOQP

FeaturesInstallationLicenseDocumentation

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
  • Fast: 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 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 file for details.