# Software

These are my software projects. For more details and the code please visit my Github page.

## OSQP

The OSQP (Operator Splitting Quadratic Program) solver is a numerical optimization package for solving convex quadratic programs in the form

$\begin{array}{ll} \text{minimize} & \frac{1}{2} x^T P x + q^T x \\[.5em] \text{subject to} & l \leq A x \leq u. \end{array}$

Academic users include MIT, Stanford, ETH Zurich, University of Oxford, Berkeley, Imperial College, UCLA, KU Leuven, Lund University.

## QDLDL

QDLDL is a free sparse $LDL^T$ factorization routine for solving linear systems of the form

$A x = b,$

where $A$ is quasi-definite. Already used in many numerical solvers including OSQP and SCS.

## SwitchTimeOpt.jl

SwitchTimeOpt.jl is a Julia package to easily define and efficiently solve switching time optimization (STO) problems for linear and nonlinear systems of the form

$\begin{array}{ll} \underset{\tau}{\text{minimize}} & \int_{t_0}^{T} x(t)^\top Q x(t)\; \mathrm{d}t + x(T)^\top Q x(T)\\ \text{subject to} & \dot{x}(t) = f_i(x(t)) \quad t\in[\tau_i,\tau_{i+1}) \quad \forall i\\ & x(0) = x_0\\ & \tau_i \leq \tau_{i+1}, \quad \forall i \end{array}$

where $f_i$ defines the system dynamics and $\tau_i$ are the switching times.