'Returns the result of the call to the solver.
Parameters
objective : LinOp
The canonicalized objective.
constraints : list
The list of canonicalized cosntraints.
cached_data : dict
A map of solver name to cached problem data.
warm_start : bool
Not used.
verbose : bool
Should the solver print output?
solver_opts : dict
Additional arguments for the solver.
Returns
tuple
(status, optimal value, primal, equality dual, inequality dual)'

def solve(self, objective, constraints, cached_data, warm_start, verbose, solver_opts):

    import cvxopt
    import cvxopt.solvers
    data = super(CVXOPT, self).get_problem_data(objective, constraints, cached_data)
    data[s.DIMS] = copy.deepcopy(data[s.DIMS])
    for (key, val) in data[s.DIMS].items():
        if isinstance(val, list):
            data[s.DIMS][key] = [int(v) for v in val]
        else:
            data[s.DIMS][key] = int(val)
    kktsolver = self.get_kktsolver_opt(solver_opts)
    if (kktsolver != s.ROBUST_KKTSOLVER):
        if (self.remove_redundant_rows(data) == s.INFEASIBLE):
            return {s.STATUS: s.INFEASIBLE}
    data[s.A] = intf.sparse2cvxopt(data[s.A])
    data[s.G] = intf.sparse2cvxopt(data[s.G])
    data[s.B] = intf.dense2cvxopt(data[s.B])
    data[s.H] = intf.dense2cvxopt(data[s.H])
    data[s.C] = intf.dense2cvxopt(data[s.C])
    old_options = cvxopt.solvers.options.copy()
    cvxopt.solvers.options['show_progress'] = verbose
    if ('max_iters' in solver_opts):
        solver_opts['maxiters'] = solver_opts['max_iters']
    for (key, value) in solver_opts.items():
        cvxopt.solvers.options[key] = value
    if ('refinement' not in cvxopt.solvers.options):
        cvxopt.solvers.options['refinement'] = 1
    try:
        if data[s.DIMS][s.EXP_DIM]:
            results_dict = self.cpl_solve(data, kktsolver)
        else:
            results_dict = self.conelp_solve(data, kktsolver)
    except ValueError:
        results_dict = {'status': 'unknown'}
    self._restore_solver_options(old_options)
    return self.format_results(results_dict, data, cached_data)
