### SDPNAL+ version 0.5 (beta) -- a MATLAB software for semidefinite programming with bound constraints. Authors: Defeng Sun, Kim-Chuan Toh, and Xinyuan Zhao. Past contributors: Liuqin Yang.

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

$$\begin{array}{ll} \min & \langle C_1,X_1\rangle + ... + \langle C_N,X_N\rangle \\[3pt] {\rm s.t.} & {\cal A}_1(X_1) + ... + {\cal A}_N(X_N) = b, \\[3pt] & l\leq {\cal B}_1(X_1) + ... + {\cal B}_N(X_N) \leq u, \\[3pt] & X_k \succeq 0,\, L_k \leq X_k \leq U_k,\; k=1,...,N \end{array}$$

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 current beta version 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 standard SDP problems with $$\max\{n_1,...,n_N\}$$ ($$n_k$$=dimension of matrix variable $$X_k$$) up to 5000. The number of linear equality constraints (dimension of b) can be large. In our numerical experiments, we have successfully solved SDPs with m > 10 millions.
Detailed computational results for over 500 problems tested in the following papers.

Citation:

• SDPNAL+ 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.
Please read. Welcome to SDPNAL+! The software requires a few Mex files for execution. You can generate (only need to be done once) these Mex files as follows:
• Firstly, unpack the software:
unzip SDPNAL+v0.5.zip
• Run Matlab in the directory SDPNAL+v0.5
• In the Matlab command window, type:
>> Installmex_SDPNALplus
or
>> Installmex_SDPNALplus(1) (to recompile all Mex files)

This step only needs to be done once.
• After that, to see whether you have installed SDPNAL+v0.5 correctly, type:
>> startup
>> SDPNALplusDemo
• By now, SDPNAL+ is ready for you to use.

Bugs corrected
• 2016/07/18: Fixed incompatible mex command for Mac OS.
• 2016/06/20: Fixed mex-functions incompatibility with Matlab 2016.
• 2016/06/20: Allows a linear system of equations of the form $${\cal A}{\cal A}^* y = h$$, where $${\cal A} = \sum_{i=1}^N {\cal A}_i$$, to be solved by a diagonally preconditioned iterative solver.
• 2016/04/07: Corrected the output format to be the same as that of the SDPT3 format.