Our GitHub page is available at:

Sieve-SDP – A preprocessing Matlab toolbox for Semidefinite Programming

PAPA – Proximal Alternating Penalty Algorithms

  • PAPA-v1.0 is a MATLAB software package for solving constrained convex optimization problems of the form:
     \begin{array}{ll} \displaystyle\min_{\mathbf{x}\in\mathbf{R}^p, \mathbf{y}\in\mathbb{R}^n} & f(\mathbf{x},\mathbf{y}) = g(\mathbf{x}) +h(\mathbf{y}) \\ \text{s.t.} & -\mathbf{x}+\mathbf{B}\mathbf{y} \in\mathcal{K}, \end{array} 

    where g and h are two convex functions, \mathbf{B}\in\mathbb{R}^{n\times p}, \mathcal{K} is a simple, nonempty, closed, and convex set in \mathbb{R}^n.
    Here, we assume that g and h are proximally tractable, i.e., the proximal operators \mathrm{prox}_{g} and \mathrm{prox}_h are efficient to compute (see below).

    PAPA aims at solving constrained convex optimization problem for any convex functions g and h, where their proximal operator is provided.
    PAPA is developed by Quoc Tran-Dinh at the Department of Statistics and Operations Research, University of North Carolina at Chapel Hill (UNC), North Carolina.

  • Download: PAPA-v1.0 can be downloaded HERE.
  • References: The theory and algorithms implemented in PAPA can be found in:
    1. Q. Tran Dinh: Proximal Alternating Penalty Algorithms for Nonsmooth Constrained Convex Optimization, Manuscript, STOR-UNC, Nov., 2017. (preprint:


LMAOPT – Low-Rank Matrix Approximation Optimization

  • LMAOPT-v1.0 is a MATLAB code collection for solving three special cases of the following low-rank matrix optimization problem:
     \Phi^{\star} := \displaystyle\min_{U\in\mathbf{R}^{m\times r}, V\in\mathbb{R}^{n\times r}}\Big\{ \Phi(U,V) := \phi(\mathcal{A}(UV^T) - B) \Big\}, 

    where \phi is a proper, closed and convex function from \mathbb{R}^l\to\mathbb{R}\cup\{+\infty\}, \mathcal{A} is a linear operator from \mathbb{R}^{m\times n} to \mathbb{R}^l, and B\in\mathbb{R}^l is a given observed vector. Here, we are more interested in the case r \ll \min\{m, n\}. Currently, we provide the code to solve three special cases of the above problem:

    1. Quadratic loss: \phi(\cdot) = \frac{1}{2}\Vert\cdot\Vert_2^2;
    2. Quadratic loss and symmetric case: \phi(\cdot) = \frac{1}{2}\Vert\cdot\Vert_2^2 and U = V; and
    3. Nonsmooth objective loss with tractably proximal operators: For instance, \phi(\cdot) = \Vert\cdot\Vert_1.
  • LMAOPT is implemented by Quoc Tran-Dinh at the Department of Statistics and Operations Research (STAT&OR), The University of North Carolina at Chapel Hill (UNC). This is a joint work with Zheqi Zhang at STAT & OR, UNC.
  • Download: LMAOPT-v1.0 can be downloaded HERE.
    For further information, please read Readme3.txt.
  • References: The theory and algorithms implemented in LMAOPT can be found in the following manuscript: Q. Tran-Dinh, and Z. Zhang: Extended Gauss-Newton and Gauss-Newton ADMM algorithms for low-rank matrix optimizationSTAT&OR Tech. Report UNC-REPORT-2016.a, (2016). Preprint:

Useful Software Tools in Optimization

These opensource and academic free-of-charge software tools are very useful for research in optimization: