ODYS QP solver

ODYS QP Solver is an optimization software package designed to solve Quadratic Programming (QP) problems. It is specifically tailored and optimized for dense problems, especially for those arising in real-time embedded optimization and model predictive control. It supports general inequality constraints, equality constraints, and bound constraints on the optimization variables.

Fast and Accurate

The solver is extremely fast and robust for QP problems of the typical size found in embedded optimization. High accuracy of the optimal solution is obtained in both single and double precision floating point arithmetic.
Learn More »

Optimized for Model Predictive Control

When the QP problem derives from a Model Predictive Control (MPC) formulation, the solver exploits the special structure of the cost function and constraints to significantly reduce computation time and memory footprint.
Learn More »

Certifiable execution time

Our proprietary certification package can compute in advance the exact worst-case execution time of the solver, for QP problems that depend linearly on parameters. This is very useful in embedded applications with hard real-time constraints to guarantee that task overruns never occur.
Learn More »

Easy to deploy

The solver is efficiently coded in plain C and does not require external libraries. The source code can be easily integrated into your target platform. We provide plug-and-play interfaces to Windows, Unix (Linux/MacOS), Python, MATLAB/Simulink, R, and more.
Learn More »

Get in touch with us to download a free trial of the software or request a quote for the full version.


ODYS QP solver is designed to solve very efficiently small and medium scale convex quadratic programming problems of the form:

     {\footnotesize \begin{alignat*}{2} \underset{z}{\text{min.}}\quad &\dfrac{1}{2}z'Hz +h'z &\\ \text{s.t.}\quad & A_{in}z\le b_{in} &\text{(inequality constraints)} \\ & A_{eq}z= b_{eq} &\text{(equality constraints)}\\ & l_b \le z\le u_b &\text{(bound constraints)} \end{alignat} }

The solver has been successfully applied in many real-time optimization problems that require computing the solution in the milliseconds range and on limited computational resources. Besides being fast and having a low memory occupancy, it provides accurate and robust results even when used in single precision arithmetic.

The tables on the right show the results obtained by running the solver on an Intel Core i7 2.5GHz, for dense QP problems of different sizes and with an average of 40% constraints active at the optimal solution.

Integration with Model Predictive Control

Solving QP problems efficiently is the key enabler for deploying real-time linear and nonlinear model predictive control in industrial production.

Although the basic version of ODYS QP solver software can already solve problems arising from MPC, a dedicated MPC version has been developed to further improve both the speed of execution and the memory occupancy of the optimization algorithm.

By exploiting the special structure of the cost function and constraints of a predictive control problem formulation, the MPC version of ODYS QP solver can be twice as fast and take half the memory than the basic version.

The QP solver is part of ODYS’ proprietary C code for real-time implementation of embedded MPC controllers in industrial applications.

Certification of execution time

Quantifying with accuracy the worst-case execution time of the optimizer is typically necessary in industrial embedded systems, to meet real-time requirements and avoid oversizing the processor. Most QP algorithms simply impose a maximum number of iterations to make sure that the problem is solved within the prescribed amount of time, without any guarantee on the quality of the computed solution.

ODYS QP solver comes with a complexity analyzer that computes exactly the maximum number of iterations needed to reach the optimal solution, for a given set of problems that depend linearly on parameters, with no over-estimation!

This is helpful to select the appropriate computing hardware in the control design phase, to validate an existing design, and to identify possible situations where the problem is infeasible.


Cross-platform deployment

ODYS QP Solver is distributed as a shared library and supports all the main operating systems: Windows, Linux and MacOS, in 32-bit and 64-bit architectures.

The software includes built-in interfaces and demos for MATLAB/Simulink, Python and C. Also, it can be readily integrated in any framework that allows importing shared libraries.

The solver is coded in plain C and does not require any OS-dependent function or library. As such, the solver can be compiled on virtually any platform supporting floating point operations.

Please contact us if you are interested in obtaining the source code for compiling the solver in your desired target platform.


Graphics by