From 49b8094f2a13aafbce96f034b5a5f8576328c211 Mon Sep 17 00:00:00 2001
From: MiftariB <miftaribard@gmail.com>
Date: Tue, 8 Oct 2024 14:36:58 +0200
Subject: [PATCH] getting dual in clp

---
 src/gboml/solver_api/clp_solver.py | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/gboml/solver_api/clp_solver.py b/src/gboml/solver_api/clp_solver.py
index 859c944..7f244ec 100644
--- a/src/gboml/solver_api/clp_solver.py
+++ b/src/gboml/solver_api/clp_solver.py
@@ -138,9 +138,10 @@ def clp_solver(matrix_a_eq: coo_matrix, vector_b_eq: np.ndarray,
         status = "optimal"
         solution = solver.primalVariableSolution['variables']
         if details:
-            dual = solver.dualVariableSolution['variables']
-            constraints_additional_info_ineq["dual"] = dual[:matrix_a_ineq.shape[0]].tolist()
-            constraints_additional_info_eq["dual"] = dual[matrix_a_ineq.shape[0]:].tolist()
+            dual = solver.dualConstraintSolution
+            dual_keys = list(dual.keys())
+            constraints_additional_info_ineq["dual"] = dual[dual_keys[0]].tolist()
+            constraints_additional_info_eq["dual"] = dual[dual_keys[1]].tolist()
 
         # if we added an additional variable artificially
         # we remove it
-- 
GitLab