From 9ff0481a0cd054e1c2a2eff274ed9b3bcea34a5f Mon Sep 17 00:00:00 2001 From: kalmarek Date: Thu, 22 Nov 2018 20:13:15 +0100 Subject: [PATCH] return solver's status alongside the solution --- src/laplacians.jl | 4 ++-- src/sos_sdps.jl | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/laplacians.jl b/src/laplacians.jl index e61b15f..1e4010a 100644 --- a/src/laplacians.jl +++ b/src/laplacians.jl @@ -77,7 +77,7 @@ function computeλandP(sett::Settings{Naive}, Δ::GroupRingElem; info(Base.repr(SDP_problem)) ws = warmstart(sett) - @time λ, P, ws = PropertyT.solve(solverlog, SDP_problem, varλ, varP, ws) + @time status, (λ, P, ws) = PropertyT.solve(solverlog, SDP_problem, varλ, varP, ws) save(filename(sett, :warmstart), "warmstart", ws) return λ, P @@ -102,7 +102,7 @@ function computeλandP(sett::Settings{Symmetrize}, Δ::GroupRingElem; info(Base.repr(SDP_problem)) ws = warmstart(sett) - @time λ, Ps, ws = PropertyT.solve(solverlog, SDP_problem, varλ, varP, ws) + @time status, (λ, Ps, ws) = PropertyT.solve(solverlog, SDP_problem, varλ, varP, ws) save(filename(sett, :warmstart), "warmstart", ws, "Ps", Ps, "λ", λ) info("Reconstructing P...") diff --git a/src/sos_sdps.jl b/src/sos_sdps.jl index 86fa147..f8c20be 100644 --- a/src/sos_sdps.jl +++ b/src/sos_sdps.jl @@ -179,6 +179,7 @@ function solve(m::JuMP.Model, varλ::JuMP.Variable, varP, warmstart=nothing) end MathProgBase.optimize!(m.internalModel) + status = MathProgBase.status(m.internalModel) λ = MathProgBase.getobjval(m.internalModel) @@ -190,14 +191,14 @@ function solve(m::JuMP.Model, varλ::JuMP.Variable, varP, warmstart=nothing) P = JuMP.getvalue(varP) λ = JuMP.getvalue(varλ) - return λ, P, warmstart + return status, (λ, P, warmstart) end function solve(solverlog::String, model::JuMP.Model, varλ::JuMP.Variable, varP, warmstart=nothing) function f() Base.Libc.flush_cstdio() - λ, P, ws = PropertyT.solve(model, varλ, varP, warmstart) + status, (λ, P, ws) = PropertyT.solve(model, varλ, varP, warmstart) Base.Libc.flush_cstdio() return λ, P, ws end @@ -208,7 +209,7 @@ function solve(solverlog::String, model::JuMP.Model, varλ::JuMP.Variable, varP, λ, P, warmstart = redirect_stdout(f, log) close(log) - return λ, P, warmstart + return status, (λ, P, warmstart) end ###############################################################################