ODYS QP Solver

Fast and robust QP solver for embedded optimization

ODYS QP Solver is a fast and robust solver for Quadratic Programming (QP) problems. It is optimized for problems arising in real-time embedded optimization and embedded MPC. 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. In obtains high-accuracy optimal solutions in both single and double precision floating-point arithmetic.
Learn More »

Optimized for Model Predictive Control

The solver is very efficient in solving Model Predictive Control (MPC) problems. It exploits the special structure of the MPC problem 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, does not require external libraries, and is compliant with MISRA-C 2012. The source code can be easily integrated into your target platform. We provide plug-and-play interfaces to Windows, Unix, Python, MATLAB®, Simulink®, R, and more.
Learn More »

Get in touch with us to request a trial version of the software or a quote for the full version. We will be happy to discuss with you the needs of your application. If you use ODYS QP Solver in a scientific paper, please add a citation.


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

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

We have successfully applied the solver in many real-time optimization problems that require computing the solution in the millisecond range and on limited computational resources. It is fast and has a low memory footprint. It provides accurate and robust results even when used in single-precision arithmetic.

Check below a benchmark with other existing solvers carried out on an ARM embedded platform. Slides are an extract from a more comprehensive overview of ODYS software tools for real-time optimization and embedded MPC presented at IFAC TC on Optimal Control “Trends in software and tools for optimal and predictive control”. Check out the video from the talk.

Integration with Model Predictive Control

Solving QP problems efficiently is the key enabler for applying 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, we have developed a dedicated MPC version to further improve both the speed of execution and the memory occupancy of the optimization algorithm.

By exploiting the special structure of the MPC problem, the MPC-dedicated version of ODYS QP Solver is twice as fast and takes half the memory as the basic version, on typical embedded control problems.

This specialized version is integrated into ODYS Embedded MPC, our software library implementing MPC for real-time applications.

Fast and robust QP solver for embedded optimization

Certification of execution time

Quantifying with accuracy the worst-case execution time of the optimizer is typically necessary for 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. On the other hand, we have developed a complexity analyzer for ODYS QP Solver, 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, validate an existing design, and identify possible situations where the problem is infeasible.

Fast and robust QP solver

Cross-platform deployment

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

The software includes built-in interfaces and demos for MATLAB®, Simulink®, Python, and C. Users can readily integrate it into any framework that allows importing shared libraries.

The solver is coded in plain C, is compliant with MISRA-C 2012 requirements, 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 code for compiling the solver in your target platform.

Fast and robust QP solver

Graphics by www.giuliaferrandi.com