Skip to content

JiazhengZhu/SDPA_GMP.jl

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SDPA_GMP

A first attempt at using SDPA-GMP in Julia. Call SDPA_GMP.Optimizer() to use this wrapper via MathOptInterface.

Installation

This package is not yet registered in METADATA.jl. To install, type ] in the julia command prompt, then execute

(v1.1) pkg> add https://github.com/ericphanson/SDPA_GMP.jl.git

After installing the package, make sure that the sdpa_gmp binary is in system PATH. Alternatively, modify the sdpa_gmp_path constant in SDPA_GMP.jl to a path that points to the sdpa_gmp binary. Further information about compiling SDPA-GMP binary can be found here.

Note that before compilation it is often necessary to modify the SDPA-GMP source code so that the output values have sufficient precision. To do this, modify the P_FORMAT string at line 23 in sdpa_struct.h so that the output has a precision no less than the default precision (200 bits) or precision specified by the parameter file.

Usage

Parameters

SDPA-GMP uses the parameter file named param.sdpa in the same folder as the binary if present. For details please refer to the SDPA users manual.

Using a number type other than Float64

SDPA-GMP.jl uses Float64 for problem data and solution by default. To use, for example, BigFloat instead, simply call SDPA_GMP.Optimizer{BigFloat}(). Note that with MathOptInterface all the problem data must be of the same type, i.e. BigFloat in this case.

Using presolve

SDPA-GMP will emit cholesky miss condition :: not positive definite error if the problem data contain linearly dependent constraints. By default, a presolver will try to detect such constraints by Gaussian elimination. The redundant constraints are omitted from the problem formulation and the corresponding decision variables are set to 0 in the final result. The time taken to perform the presolve step depends on the size of the problem. To disable, call SDPA_GMP.Optimizer(presolve = false) instead.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Julia 83.3%
  • JavaScript 8.1%
  • CSS 7.5%
  • HTML 1.1%