From ed14c387c7222aaf408e5bbfc631a52783cf93c7 Mon Sep 17 00:00:00 2001 From: Miles Lubin Date: Mon, 10 Aug 2015 22:43:55 -0600 Subject: [PATCH] fix signs on duals, closes #26 --- src/ECOSSolverInterface.jl | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/ECOSSolverInterface.jl b/src/ECOSSolverInterface.jl index 14c4eaf..40cd02a 100644 --- a/src/ECOSSolverInterface.jl +++ b/src/ECOSSolverInterface.jl @@ -399,14 +399,12 @@ function getconicdual(m::ECOSMathProgModel) duals = zeros(length(m.row_map_ind)) for (mpb_row,ecos_row) in enumerate(m.row_map_ind) cone = m.row_map_type[mpb_row] - # Not well understood why we need to flip signs - # of Zero and SOC constraints. if cone == :Zero # This MPB constraint ended up in ECOS equality block - duals[mpb_row] = -m.dual_sol_eq[ecos_row] + duals[mpb_row] = m.dual_sol_eq[ecos_row] else # Ended up in ECOS inequality block - if cone == :NonPos || cone == :SOC + if cone == :NonPos duals[mpb_row] = -m.dual_sol_ineq[ecos_row] else duals[mpb_row] = m.dual_sol_ineq[ecos_row]