| Code generation |
| =============== |
| |
| OSQP can generate tailored C code that compiles into a fast and reliable solver |
| for the given family of QP problems in which the problem data, but not its |
| dimensions, change between problem instances. |
| |
| |
| The generated code is: |
| |
| .. glossary:: |
| |
| Malloc-free |
| It does not perform any dynamic memory allocation. |
| |
| Library-free |
| It is not linked to any external library. |
| |
| Division-free |
| There are no division required in the ADMM algorithm |
| |
| |
| We make a distinction between two cases depending on which of the data are to be |
| treated as parameters. |
| |
| .. glossary:: |
| |
| Vectors as parameters |
| Vectors :math:`q`, :math:`l` and :math:`u` can change between problem instances. |
| This corresponds to the compiler flag :code:`EMBEDDED=1`. |
| :math:`\rho` adaptation is not enabled. |
| The generated code is division-free and has a very small footprint. |
| |
| Matrices as parameters |
| Both vectors :math:`q`, :math:`l`, :math:`u` and values in matrices |
| :math:`P` and :math:`A` can change between problem instances. |
| This corresponds to the compiler flag :code:`EMBEDDED=2`. |
| :math:`\rho` adaptation is enabled but the frequency does not rely on any timing. |
| We assume that the sparsity patterns of :math:`P` and :math:`A` are fixed. |
| |
| |
| .. toctree:: |
| :maxdepth: 1 |
| :glob: |
| |
| * |