Squashed 'third_party/osqp/' content from commit 33454b3e23
Change-Id: I056df0582ca06664e86554c341a94c47ab932001
git-subtree-dir: third_party/osqp
git-subtree-split: 33454b3e236f1f44193bfbbb6b8c8e71f8f04e9a
Signed-off-by: Austin Schuh <austin.linux@gmail.com>
diff --git a/docs/codegen/index.rst b/docs/codegen/index.rst
new file mode 100644
index 0000000..d9ebdc1
--- /dev/null
+++ b/docs/codegen/index.rst
@@ -0,0 +1,46 @@
+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:
+
+ *