## SDPNAL+ version 1.0 -- a MATLAB software for semidefinite programming with bound constraints

#### Defeng Sun, Kim-Chuan Toh, Xinyuan Zhao

##### Past contributors: Liuqin Yang

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

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, email: mattohkc@nus.edu.sg.
• 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 $\max\{n_1,\ldots,n_N\}$ ($n_k$=dimension of matrix variable $X_k$) up to 5000. The number of linear equality constraints ($m$ = dimension of $b$) can be large. In our numerical experiments, we have successfully solved SDPs with $m > 10$ millions.
• Detailed computational results (computed in Dec 2017) for over 500 problems tested in the following papers.
##### Citation

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.

• Please read.. 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.

• Run Matlab in the directory SDPNAL+v1.0

• After that, to see whether you have installed the software correctly, type:

>> startup>> 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

• The following example shows how SDPNALplus.m call a data file that is stored in the SDPA format:

xxxxxxxxxx>> [blk,At,C,b] = read_sdpa('/datafiles/theta4.dat-s'); >> OPTIONS.tol = 1e-6; >> [obj,X,s,y,Z1,Z2,y2,v,info,runhist] = sdpnalplus(blk,At,C,b,[],[],[],[],[],OPTIONS);

• 2016/06/20: Allows a linear system of equations of the form ${\cal A}{\cal A}^* y=h$, where ${\cal A}=[{\cal A}_1,\ldots,{\cal A}_N],$ to be solved by a diagonally preconditioned iterative solver.