'Parses the output from a solver and updates the problem state.
Updates problem.status, problem.value and value of
primal and dual variables.
Assumes the results are from the given solver.
Parameters
solver_name : str
The name of the solver being used.
results_dict : dict
The solver output.'

def unpack_results(self, solver_name, results_dict):

    if (solver_name not in SOLVERS):
        raise SolverError('Unknown    solver.')
    solver = SOLVERS[solver_name]
    (objective, constraints) = self.canonicalize()
    sym_data = solver.get_sym_data(objective, constraints, self._cached_data)
    data = {s.DIMS: sym_data.dims, s.OFFSET: 0}
    results_dict = solver.format_results(results_dict, data, self._cached_data)
    self._update_problem_state(results_dict, sym_data, solver)
