SOPT is an open-source code that provides functionality to perform sparse optimisation using state-of-the-art convex optimisation algorithms.

SOPT is written in C++ primarily but also contains partial Matlab support. SOPT is largely provided to support the PURIFY package, a companion open-source code to perform radio interferometric imaging, also written by the authors of SOPT. For further background please see the following paper.

This documentation outlines how to obtain SOPT, before describing installation details, source code documentation and Matlab support. Reference, license and author information then follows.


SOPT is an open-source package available under the license described below.

The SOPT code is available at github.


A separate Matlab implementation is provided with SOPT. This implementation includes some (but not all) of the optimisation algorithms implemented in the C++ code, including the SARA algorithm.

The Matlab implementation is contained in the matlab directory. This is a stand-alone implementation and does not call any of the C++ code. In future, Matlab interfaces to the C++ code may also be included in SOPT.

See matlab/README.txt for an overview of the Matlab implementation. The stand-alone Matlab implementation is also self-documenting; corresponding documentation can be found in matlab/doc. We thank Gilles Puy for contributing to this Matlab implementation.


If you use SOPT for work that results in publication, please reference this site ( and our related academic papers:

R. E. Carrillo, J. D. McEwen and Y. Wiaux, Sparsity Averaging Reweighted Analysis (SARA): a novel algorithm for radio-interferometric imaging, Mon. Not. Roy. Astron. Soc., 426(2):1223-1234, 2012.
ArXiv:1205.3123 | DOI:10.1111/j.1365-2966.2012.21605.x
R. E. Carrillo, J. D. McEwen, D. Van De Ville, J.-P. Thiran, and Y. Wiaux, Sparsity averaging for compressive imaging, IEEE Sig. Proc. Lett., 20(6): 591-594, 2013.
ArXiv:1208.2330 | DOI:10.1109/LSP.2013.2259813
A. Onose, R. E. Carrillo, A. Repetti, J. D. McEwen, J.-P. Thiran, J.-C. Pesquet, and Y. Wiaux, Scalable splitting algorithms for big-data interferometric imaging in the SKA era, Mon. Not. Roy. Astron. Soc., 462(4):4314-4335, 2016.
ArXiv:1601.04026 | DOI:10.1093/mnras/stw1859


SOPT: Sparse OPTimisation
Copyright (C) 2013 Rafael Carrillo, Jason McEwen, Yves Wiaux

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details (LICENSE.txt).

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

About the authors

SOPT was initially created by Rafael Carrillo, Jason McEwen and Yves Wiaux but major contributions have since been made by a number of others. The full list of contributors is as follows:

Example frontpage image Dr Rafael Carrillo
Academic web page »

Example frontpage image Dr Jason McEwen
Academic web page »

Example frontpage image Dr Yves Wiaux
Academic web page »

Example frontpage image Vijay Kartik
Academic web page »

Example frontpage image Mayeul d'Avezac
Academic web page »

Example frontpage image Luke Pratley
Academic web page »

Example frontpage image David Perez-Suarez
Academic web page »