QSDPNAL version 1.0 — a MATLAB software for convex quadratic semidefinite programming

Xudong Li, Defeng Sun, Kim-Chuan Toh

This software is designed to solve convex quadratic SDP of the form:

\min \left\{\frac{1}{2}\langle X, {\cal Q} X \rangle + \langle C, X \rangle
\mid {\cal A} X= b, \; X\in {\cal S}_+^n \cap {\cal K} \right\},
\] where ${\cal Q}:{\cal S}_n\to {\cal S}_n $ is a self-adjoint positive semidefinite linear operator, ${\cal A}:{\cal S}_n \rightarrow \mathbb{R}^{m}$ is a linear map, $C\in {\cal S}_n$, $b \in \mathbb{R}^{m}$ are given data, ${\cal K}$ is a simple nonempty closed convex polyhedral set in ${\cal S}_n$, such as ${\cal K} =\{X \in{\cal S}_n \mid\, L\leq X\leq U\}$ with $L,U\in {\cal S}_n$ being given matrices.

Important note:

  • The software is still under development. Thus it will invariably be buggy. We would appreciate your feedback and bugs’ report.
  • This is a research software. It is not intended nor designed to be a general purpose software at the moment.


  • Xudong Li, Defeng Sun, and Kim-Chuan Toh, QSDPNAL: A two-phase augmented Lagrangian method for convex quadratic semidefinite programming, Mathematical Programming Computation, 10 (2018), pp. 703–743.

Copyright. This version of QSDPNAL is distributed under the GNU General Public License 2.0. For commercial applications that may be incompatible with this license, please contact the authors to discuss alternatives.


You can download the package here: QSDPNAL.zip

Installation. The user can simply follow the steps below to install QSDPNAL within Matlab:

  • unzip QSDPNAL.zip;
  • run Matlab in the directory QSDPNAL;
  • After that, to see whether you have installed QSDPNAL correctly, try the following steps:
    >> startup
    >> qsdpdemo
  • The users’ guide is included in the Appendix of our paper.