MATLAB Implementation of the OSQP Algorithm

Since I was very curious to see how things works and I can’t do C coding properly I decided to take the paper: OSQP: An Operator Splitting Solver for Quadratic Programs and implement it in MATLAB (Julia to follow).
The paper is a master piece. I have never seen a paper which explains the reader everything about how things works. All the little details and in a clear manner. It should be an example how papers about practice should be written.

I created Quadratic Program Solver.
It doesn’t replicate the C code perfectly since some features aren’t implemented:

  1. Scaling.
  2. The parameter \rho in a matrix form (See Choice of rho vector in ADMM - #6 by Royi).

Yet I implemented both decomposition mode and iterative solver mode which means, theoretically, the MATLAB version can support bigger problems.

I’d be happy to any feedback and hope it will assist anyone else on their work.

The repository contains some Julia code I started writing.
I think Julia’s version can be as fast as the C version and more flexible.
Which means we can try even optimize the algorithm more.

1 Like