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/index.rst b/docs/index.rst
new file mode 100644
index 0000000..ce9bb01
--- /dev/null
+++ b/docs/index.rst
@@ -0,0 +1,110 @@
+OSQP solver documentation
+==========================
+**Join our** `forum <https://osqp.discourse.group/>`_ **for any
+questions related to the solver!**
+
+The OSQP (Operator Splitting Quadratic Program) solver is a numerical
+optimization package for solving convex quadratic programs in the form
+
+.. math::
+  \begin{array}{ll}
+    \mbox{minimize} & \frac{1}{2} x^T P x + q^T x \\
+    \mbox{subject to} & l \leq A x \leq u
+  \end{array}
+
+where :math:`x` is the optimization variable and
+:math:`P \in \mathbf{S}^{n}_{+}` a positive semidefinite matrix.
+
+**Code available on** `GitHub <https://github.com/osqp/osqp>`_.
+
+.. rubric:: Citing OSQP
+
+If you are using OSQP for your work, we encourage you to
+
+* :ref:`Cite the related papers <citing>`
+* Put a star on GitHub |github-star|
+
+
+.. |github-star| image:: https://img.shields.io/github/stars/osqp/osqp.svg?style=social&label=Star
+  :target: https://github.com/osqp/osqp
+
+
+**We are looking forward to hearing your success stories with OSQP!** Please `share them with us <bartolomeo.stellato@gmail.com>`_.
+
+.. rubric:: Features
+
+
+.. glossary::
+
+    Efficient
+        It uses a custom ADMM-based first-order method requiring only a single matrix factorization in the setup phase. All the other operations are extremely cheap. It also implements custom sparse linear algebra routines exploiting structures in the problem data.
+
+    Robust
+        The algorithm is absolutely division free after the setup and it requires no assumptions on problem data (the problem only needs to be convex). It just works!
+
+    Detects primal / dual infeasible problems
+        When the problem is primal or dual infeasible, OSQP detects it. It is the first available QP solver based on first-order methods able to do so.
+
+    Embeddable
+        It has an easy interface to generate customized embeddable C code with no memory manager required.
+
+    Library-free
+        It requires no external library to run.
+
+    Efficiently warm started
+        It can be easily warm-started and the matrix factorization can be cached to solve parametrized problems extremely efficiently.
+
+    Interfaces
+        It can be interfaced to C, C++, Fortran (soon!), Python, Julia and Matlab.
+
+
+
+.. rubric:: License
+
+OSQP is distributed under the `Apache 2.0 License <https://www.apache.org/licenses/LICENSE-2.0>`_
+
+
+
+.. rubric:: Credits
+
+The following people have been involved in the development of OSQP:
+
+* `Bartolomeo Stellato <https://stellato.io/>`_ (Princeton University): main development
+* `Goran Banjac <https://people.ee.ethz.ch/~gbanjac/>`_ (ETH Zürich): main development
+* `Nicholas Moehle <https://www.nicholasmoehle.com/>`_ (Stanford University): methods, maths, and code generation
+* `Paul Goulart <http://users.ox.ac.uk/~engs1373/>`_ (University of Oxford): methods, maths, and Matlab interface
+* `Alberto Bemporad <http://cse.lab.imtlucca.it/~bemporad/>`_ (IMT Lucca): methods and maths
+* `Stephen Boyd <https://web.stanford.edu/~boyd/>`_ (Stanford University): methods and maths
+* `Ian McInerney <mailto:i.mcinerney17@imperial.ac.uk>`_ (Imperial College London): code generation, software development
+* `Michel Schubiger <mailto:michel.schubiger@bluewin.ch>`_ (Schindler R&D): GPU implementation
+* `John Lygeros <https://control.ee.ethz.ch/people/profile.john-lygeros.html>`_ (ETH Zurich): methods and maths
+
+Interfaces development
+
+* `Nick Gould <http://www.numerical.rl.ac.uk/people/nimg/nimg.html>`_ (Rutherford Appleton Laboratory): Fortran and CUTEst interfaces
+* `Ed Barnard <eabarnard@gmail.com>`_ (University of Oxford): Rust interface
+
+
+.. rubric:: Bug reports and support
+
+Please report any issues via the `Github issue tracker <https://github.com/osqp/osqp/issues>`_. All types of issues are welcome including bug reports, documentation typos, feature requests and so on.
+
+
+.. rubric:: Numerical benchmarks
+
+Numerical benchmarks against other solvers are available `here <https://github.com/osqp/osqp_benchmarks>`_.
+
+
+.. toctree::
+   :hidden:
+   :maxdepth: 2
+   :caption: User Documentation
+
+   solver/index
+   get_started/index
+   interfaces/index
+   parsers/index
+   codegen/index
+   examples/index
+   contributing/index
+   citing/index