# Software

These are my software projects. The code of my research group is available in the Stellato Research Group organization on github. For more details on my previous projects and personal code please visit my personal github account.

## 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} & (1/2) x^T P x + q^T x \\ \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.

Industrial users include Lyft, Adobe, LinkedIn, Siemens, Baidu, Quantitative Brokers, Goral Trading, Macquarie.

## 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.