DSDP
Installation Instructions.

The compressed files 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

or

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.

Compiling DSDP

Using Make

DSDP was developed using Make – which is available on Linux and most Unix systems. To compile DSDP using Make

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.

Without Make

DSDP can also be compiled by copying all of the source and header files into another directory, compiled, and linked with a driver routine (such as one of the files in 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.

Compiler Flags

BLAS and LAPACK

DSDP uses BLAS and LAPACK for many of the underlying operations and it must be linked to these libraries. Two of the eigenvalue routines require LAPACK version 3 or later. The routines in BLAS and LAPACK are called from the C programming language under the assumption that the routine names are lower case and end with an underscore. The most common linking problem occurs when these assumptions are not true. Several compiler flags can be defined to change these assumptions. Define

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.

Matlab

If the Matlab interface is be generated, one other flag may be of interest.

The standard memory allocation and print statements will be used if this flag is not defined.

Testing

Help

For help with installation, please send a copy of the compilation log to the developers.