Software Projects

Most of my group's software projects can be found on the Oxford Control GitHub page.

OSQP – Operator Splitting Quadratic Program solver

A QP solver based on operator splitting methods / alternating direction method of multipliers (ADMM). Written in C.

miOSQP – Mixed-integer QP solver based on OSQP

An mixed-integer quadratic programming (MIQP) extension to OSQP based on branch-and bound. Written in Python.

CDCS – Cone Decomposition Conic Solver

A Matlab-based ADMM solver for partially decomposable conic optimization programs, particularly suitable for large scale semi-definite programs.

The toolbox is based on this paper.

SwitchTimeOpt - Switching time optimization in Julia

Julia package to easily define and efficiently solve switching time optimization (STO) problems for linear and nonlinear systems. Supports a wide variety of nonlinear solvers through MathProgBase.jl interface such as Ipopt, KNITRO, NLopt.

The package is based on this paper.

QUINOPT - Modelling polynomial quadratic inequalities

A Matlab/Yalmip modelling layer for optimization problems with polynomial quadratic integral inequality constraints.

The toolbox is based on this paper.

QPIP – An interior point solver for quadratic and linear programs.

A Matlab-based QP solver that uses the Mehrotra predictor-corrector method for solving convex QPs. Based heavily on OOQP.

OMD – Optimal Mode Decomposition in Matlab

A Matlab toolbox that computes the Optimal Mode Decomposition (OMD) and Dynamic Mode Decomposition (DMD).

The toolbox is based on this paper.