Bartolomeo Stellato


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 Stars Downloads

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

minimize(1/2)xTPx+qTxsubject tolAxu.\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 is a free sparse LDLTLDL^T factorization routine for solving linear systems of the form

Ax=b,A x = b,

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

SwitchTimeOpt.jl Stars

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

minimizeτt0Tx(t)Qx(t)  dt+x(T)Qx(T)subject tox˙(t)=fi(x(t))t[τi,τi+1)ix(0)=x0τiτi+1,i\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 fif_i defines the system dynamics and τi\tau_i are the switching times.