Skip to content

A Julia interface to the SDPA-GMP, SDPA-DD, and SDPA-QD high precision semidefinite programming solvers.

License

Notifications You must be signed in to change notification settings

ericphanson/SDPAFamily.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SDPAFamily

CI Codecov

Note: v0.3.0 was released, which updates the package for MOI v1. This is also disables the presolve in all cases (even if it is set to true), which can cause incorrect results. See issue #67 which tracks the status of restoring presolve functionality.

An interface to using SDPA-GMP, SDPA-DD, and SDPA-QD in Julia (http://sdpa.sourceforge.net). This package is registered in the General registry; to install, type ] in the Julia command prompt, then enter

pkg> add SDPAFamily

Call SDPAFamily.Optimizer() to use this wrapper via MathOptInterface, which is an intermediate layer between low-level solvers (such as SDPA-GMP, SDPA-QD, and SDPA-DD) and high level modelling languages, such as JuMP.jl and Convex.jl.

Convex.jl 0.13+ supports MathOptInterface and can be used to solve problems with the solvers from this package.

JuMP currently only supports Float64 numeric types, which means that problems can only be specified to 64-bits of precision, and results can only be recovered at that level of precision, when using JuMP. This is tracked in the issue JuMP#2025.

Quick Example

Here is a simple optimization problem formulated with Convex.jl:

using SDPAFamily, LinearAlgebra
using Convex
y = Semidefinite(3)
p = maximize(eigmin(y), tr(y) <= 5; numeric_type = BigFloat)
solve!(p, () -> SDPAFamily.Optimizer(presolve=true))
@show p.optval

See the documentation linked above for troubleshooting help and usage information.

About

A Julia interface to the SDPA-GMP, SDPA-DD, and SDPA-QD high precision semidefinite programming solvers.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages