The SDP is defined by the following data:

The kth row of
holds the symmetric block
diagonal matrix
stored as a vector of length q
,
The user has a choice of four ways to set up the data. In all cases,
if a matrix has more than one block, it must be stored in sparse
format.
If it has only a single block, then it can be stored
either in sparse or in full format, at the user's discretion.
However, in the case of a single block, it is recommended that the
initial
and
be provided as full matrices, as the solutions
will most likely be full, even if the data itself is sparse.
directly using the function svec.m,
which converts block diagonal matrices in
to column vectors of length q.
The function smat.m restores the symmetric matrix from such a vector.
These routines are invoked by

By default, the matrix passed to svec.m is assumed to have
dense blocks. If the user wishes to take advantage of the sparsity in
the blocks of this matrix, then a third, optional parameter
sparseblks can be passed to svec.m. When
, svec.m treats the blocks as sparse,
and returns a sparse vector. These routines preserve the inner
product, i.e. if
and
for matrices
, then

The user must also construct
,
and
.
from given predefined matrices. This is invoked by

It requires that the block diagonal matrices
be
stored in variables named
. Thus if
m=100, the matrix
must be stored in a variable
A100.
The user
must also construct
,
and
.
When makeA.m is called by the user,
the blocks of the block diagonal data matrices are treated by default
as being dense. If they are sparse, and the user wishes to take
advantage of this sparsity, a third parameter sparseblks
may be passed to the routine makeA.m, and this parameter
should be set to the value 1.
In this case the matrix
will be stored using the sparse matrix
storage option.
,
,
and
) from a plain ASCII file. This is invoked by

The data must be stored in a special compact format
that is described in Appendix A.
The routine export.m implements the reverse operation, saving
a problem's data in an ASCII file, in a format recognized by
import.m.
,
,
,
,
saved previously by Matlab's save command, using Matlab's
load command. This option may be used to load all the
examples (LMI problems from control theory and problems from truss
topology design) used in Appendix C, for which mat
files are available from the SDPpack home page.