SDPNALplus version 1.0 — a MATLAB software for semidefinite programming with bound constraints

Defeng Sun, Kim-Chuan Toh
Corresponding author: Kim-Chuan Toh

Past contributors: Xinyuan Zhao (for SDPNAL), Liuqin Yang (for SDPNALplus  published in MPC), Yancheng Yuan (for a basic user friendly interface)

This software is designed to solve primal SDP of the form:

\min&\langle C_1,X_1\rangle+\cdots+\langle C_N,X_N\rangle
{\rm s.t.}&{\cal A}_1(X_1)+\cdots+{\cal A}_N(X_N)=b
&l\leq{\cal B}_1(X_1)+\cdots+{\cal B}_N(X_N)\leq u
& X_k\succeq 0,\;L_k\leq X_k\leq U_k,\quad k=1,\ldots,N

where $\(X_k\)$ are either symmetric matrices or column vectors. Linear inequality constraints are also allowed; for details, see the users’ guide in the package.

Important note.

  • The software is still under development. Thus it will invariably be buggy. We would appreciate your feedback and bugs’ report to the corresponding author: Kim-Chuan Toh (
  • This is a research software. It is not intended nor designed to be a general purpose software at the moment. The solver is expected to be robust if the primal and dual SDPs are both non-degenerate at the optimal solutions. However, if either of one of them is degenerate, then the solver may not be able to solve the SDPs to high accuracy.
  • This software package is designed for solving SDP problems with (=dimension of matrix variable ) up to 5000. The number of linear equality constraints ( = dimension of ) can be large. In our numerical experiments, we have successfully solved SDPs with millions.
  • Detailed computational results (computed in Dec 2017) for over 500 problems tested in the following papers.

  • D.F. Sun, K.C. Toh, Y.C. Yuan, and X.Y. Zhao,
    SDPNAL+: A Matlab software for semidefinite programming with bound constraints (version 1.0),

    Optimization Methods and Software, 35 (2020), 87–115. arXiv:1710.10604.
  • L.Q. Yang, D.F. Sun, and K.C. Toh, SDPNAL+: a majorized semismooth Newton-CG augmented Lagrangian method for semidefinite programming with nonnegative constraints, Mathemtical Programming Computation, 7 (2015), pp. 331-366. arXiv:1406.0942.
  • Xinyuan Zhao, Defeng Sun, and Kim-Chuan Toh, A Newton-CG Augmented Lagrangian Method for Semidefinite Programming, SIAM J. Optimization, 20 (2010), pp. 1737–1765.

Copyright. This version of SDPNAL+ is distributed under the Creative Commons Attribution-ShareAlike 4.0 International Public License. For commercial applications that may be incompatible with this license, please contact the authors to discuss alternatives.

  • Download. The software is built for MATLAB 2016b or later releases, it may not work for earlier versions.
    • The software is designed with the same data structure as in SDPT3, thus if you are familiar with SDPT3, then you can code the SDP data of your problem as you would for SDPT3
    • Download the package SDPNAL+v1.0.zp
    • Run Matlab in the directory SDPNAL+v1.0
    • After that, to see whether you have installed the software correctly, type
      >> SDPNALplus_Demo
    • By now, the software is ready for you to use.
  • User’s guide is included in the package. It is also available at arXiv