diff --git a/src/gboml/solver_api/clp_solver.py b/src/gboml/solver_api/clp_solver.py index 859c9447014a5209b5a7e80b0e67c19aee22d19f..7f244ecdd324ff2e03e1483444045011928c9911 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