DSDP5.X.tar.gz
and DSDP5.X.zip
contain an implementation of the dual-scaling algorithm for conic programming optimization problems.
Create the DSDP5.X
directory structure and enter it. For example,
gunzip DSDP5.X.tar.gz tar -xvf DSDP5.X.tar
unzip DSDP5.X.zip
Several executables may have been provided. If not, it will have to be compiled. DSDP is written in the C programming language. It has been tested using several different compilers and architectures. In particular, it has been tested using gcc-2.96 and gcc-3.2 (C and C++), Intel-6.0, Intel-7.1, Intel-8.0, and Microsoft Visual Studio 2003. It has been compiled on 32 bit and 64 bit architectures.
make.include
> cd DSDP5.X
DSDPROOT
variable as the full directory name. For example, DSDPROOT = /home/benson/DSDP5.X
CC
and OPTFLAGS
. For example, CC = gcc
OPTFLAGS = -O3
DSDPTIMER = NONE
DSDPTIMER = DSDP_MS_TIME
DSDPTIMER = DSDP_TIME
dsdptime.c
and edited.MEX
flag. For example, MEX = mex -O
-lg2c
or -lm
. For example, LAPACKBLAS = -llapack -lblas -lg2c -lm
> make all
> make dsdpmatlab
> make dsdpapi
If the DSDP Matlab mex function does not link with the library, try the next method of compilation. If problems persist, please send a copy of the compilation log to the developers.
DSDPROOT/examples/
). This process is demonstrated in the dsdpagain
target in DSDPROOT/examples/Makefile
. This method neglects the directory structure of the source code and the Makefile system, but it works fine.
NOUNDERBLAS
if no underscore is appended to the end of routine names. This flag was used to link DSDP to the reference BLAS available in Matlab using the Microsoft Compiler.CAPSBLAS
if the names of BLAS and LAPACK routine names use all capital letters.__DSDP_NONAMEMANGLING
if a C++ compiler is being used and the BLAS and LAPACK routine names should not be changed.
See the makefiles in the distribution for examples of use of these terms. Those compiling in the Microsoft Windows Operating System usually need to define the NOUNDERBLAS
flag.
DSDP also assumes that the integer
type in Fortran is the same size as a long
int
in C, and a double
precision
variable in Fortran is the same size as a double
in C. If problems persist, the macros and type definitions in the file dsdplapack.h
will have to be edited.
DSDPMATLAB
enables the use of the memory allocation and additional print statements available from Matlab.The standard memory allocation and print statements will be used if this flag is not defined.
DSDPROOT/exec
and test the examples. > dsdp5 truss1.dat-s > maxcut graph1 > theta graph1
output.truss1
, output.maxcut
, and output.theta
. If the output from any of the tests differs significantly from the files, please report it to the developers.
DSDPROOT/matlab
directory and test the solver > check;
check.out
. For help using the package, type > help dsdp;
DSDPROOT/matlab
that create example problems, read data files, and verify solutions.