Most of my group's software projects can be found on the Oxford Control GitHub page.
An interior point numerical solver for convex optimization problems using a novel homogeneous embedding – solves problems with linear, second-order cone, power cone, exponential cone and semidefiniteness constraints. We provide separate implementations in Julia and in Rust. We also provide additional interfaces to the Rust implementation via Python, R and C/C++.
A QP solver based on operator splitting methods / alternating direction method of multipliers (ADMM). Written in C, with interfaces to many other programming languages.
The solver is based on this paper.
A general purpose convex conic solver for LPs, QPs, SOCPs, SDPs and many other standard problem types. Natively supports quadratic objective functions. Based on operator splitting methods / alternating direction method of multipliers (ADMM). Written in Julia, including an interface to JuMP.
This package is based on this paper.
A lightweight factorisation package for symmetric quasidefinite matrices written in C, with a second implementation in Julia.
An active set solver for indefinite quadratic programming problems with both linear inequalities and interval constraints on the 2–norm of the decision variables. Implemented in Julia. A supporting package for solving the Trust Region Subproblem can be found here. A supporting package for solving indefinite QPs with linear inequalities only can be found here.
This package is based on this paper.
An mixed-integer quadratic programming (MIQP) extension to OSQP based on branch-and bound. Written in Python, based on this paper.
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.
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.
A Matlab/Yalmip modelling layer for optimization problems with polynomial quadratic integral inequality constraints.
The toolbox is based on this paper.
A Matlab-based QP solver that uses the Mehrotra predictor-corrector method for solving convex QPs. Based heavily on OOQP.
A Matlab toolbox that computes the Optimal Mode Decomposition (OMD) and Dynamic Mode Decomposition (DMD).
The toolbox is based on this paper.