Scroll to navigation

CSDP(1) General Commands Manual CSDP(1)


csdp - semidefinite program solver


csdp <problemfile> <finalsolution> <initialsolution>
csdp-complement <inputgraph> <outputgraph>
csdp-graphtoprob <graph> <problemfile>
csdp-randgraph <rand_graph> <file> <n> <p> [<seed>]
csdp-theta <graph>


This manual page documents briefly the csdp, csdp-complement, csdp-graphtoprob, csdp-randgraph and csdp-theta commands.

csdp -- interface to solve general semi-definite programs
csdp-complement -- compute the complement of a graph and output it in csdp problem format
csdp-graphtoprob -- convert graph into csdp problem format file
csdp-randgraph -- generate a random graph
csdp-theta -- solves the Lovasz thetha problem


A summary of options is included below. For a complete description, see /usr/share/doc/coinor-csdp-doc/csdpuser.pdf.

inputproblem in the SDPA sparse format
is the name of a file containing the SDP problem in SDPA sparse format
is the optional name of a file in which to save the final solution
is the optional name of a file from which to take the initial solution.

CSDP searches for a file named param.csdp in the current directory. If no such file exists, then default values for all of CSDP’s parameters are used. If there is a parameter file, then CSDP reads the parameter values from this file. The default parameter values is given below (can be pasted into a file):


param.csdp file parameter description

atytol objtol tolerances for primal feasibility, dual feasibility, and relative duality gap
dinftol tolerances used in determining primal and dual infeasibility
plimit the total number of iterations that CSDP may use
maxstepfrac determine how close to the edge of the feasible region CSDP will step. If the primal or dual step is shorter than minstepp or minstepd, then CSDP declares a line search failure. usexzgap If parameter 0, then CSDP will use the objective function duality gap instead of the tr(XZ) gap
if set to 1, and usexzgap is set to 0, then CSDP will attempt to "fix" negative duality gaps.
If parameter affine is set to 1, then CSDP will take only primal–dual affine steps and not make use of the barrier term. This can be useful for some problems that do not have feasible solutions that are strictly in the interior of the cone of semidefinite ma- trices. printlevel determines how much debugging information is output. Use printlevel=0 for no output and printlevel=1 for normal output. Higher values of printlevel will generate more debugging output.
determines whether the objective function will be perturbed to help deal with problems that have unbounded optimal solution sets. If per- turbobj is 0, then the objective will not be perturbed. If perturbobj=1, then the objective function will be perturbed by a default amount. Larger values of perturbobj (e.g. 100.0) increase the size of the perturbation. This can be helpful in solving some difficult problems.
determines whether or not CSDP will skip certain time consuming operations that slightly improve the accuracy of the solutions. If fastmode is set to 1, then CSDP may be somewhat faster, but also somewhat less accurate.



which can be found in /usr/share/doc/coinor-csdp-doc if the coinor-csdp-doc package is installed.


csdp was written by Brian Borchers et al.

This manual page was written by Soeren Sonnenburg <>, for the Debian project (but may be used by others).

April 11, 2009