From 7cf3a41621aab10efe9f7ec4f678d2fc3dba005d Mon Sep 17 00:00:00 2001 From: MBaltzinger Date: Sun, 5 Dec 2021 17:48:39 +0000 Subject: [PATCH 1/3] my sol file contains Optimal for clp solver instead of optimal --- src/solver/cbc_cmd.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/solver/cbc_cmd.rs b/src/solver/cbc_cmd.rs index 9f7d8f8..e5941e9 100644 --- a/src/solver/cbc_cmd.rs +++ b/src/solver/cbc_cmd.rs @@ -69,6 +69,9 @@ impl SolverCbcCmd { if !cbc && s == "optimal" { status = SolverStatus::Solved; } + if !cbc && s == "Optimal" { + status = SolverStatus::Solved; + } else if !cbc && s == "infeasible" { status = SolverStatus::Infeasible; } From 41af1b8e32233411b093eab91565293c80534228 Mon Sep 17 00:00:00 2001 From: MBaltzinger Date: Sun, 5 Dec 2021 18:16:22 +0000 Subject: [PATCH 2/3] infeasiblity too --- src/solver/cbc_cmd.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/solver/cbc_cmd.rs b/src/solver/cbc_cmd.rs index e5941e9..378734c 100644 --- a/src/solver/cbc_cmd.rs +++ b/src/solver/cbc_cmd.rs @@ -69,12 +69,15 @@ impl SolverCbcCmd { if !cbc && s == "optimal" { status = SolverStatus::Solved; } - if !cbc && s == "Optimal" { + else if !cbc && s == "Optimal" { status = SolverStatus::Solved; } else if !cbc && s == "infeasible" { status = SolverStatus::Infeasible; } + else if !cbc && s == "Infeasible" { + status = SolverStatus::Infeasible; + } else if cbc && s == "Optimal" { status = SolverStatus::Solved; } From effe62cda0a701b01059679cb2c12ab0ae7732d1 Mon Sep 17 00:00:00 2001 From: MBaltzinger Date: Sun, 5 Dec 2021 18:36:57 +0000 Subject: [PATCH 3/3] correction for objective value same line as status --- src/solver/cbc_cmd.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/solver/cbc_cmd.rs b/src/solver/cbc_cmd.rs index 378734c..800b7ff 100644 --- a/src/solver/cbc_cmd.rs +++ b/src/solver/cbc_cmd.rs @@ -96,7 +96,7 @@ impl SolverCbcCmd { } // Objective value - if !cbc { + if !cbc && (!line.contains("-")) { r.read_line(&mut line)?; } @@ -128,7 +128,7 @@ impl SolverCbcCmd { }; // Variable - if dtype == "x" { + if dtype == "x" { solution.x[index] = value; if mul > 0. { solution.pi[index] = mul;