'Returns the argument for 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.
Returns
dict
The arguments needed for the solver.'

def get_problem_data(self, objective, constraints, cached_data):

    sym_data = self.get_sym_data(objective, constraints, cached_data)
    matrix_data = self.get_matrix_data(objective, constraints, cached_data)
    data = {}
    (data[s.C], data[s.OFFSET]) = matrix_data.get_objective()
    (data[s.A], data[s.B]) = matrix_data.get_eq_constr()
    (data[s.G], data[s.H]) = matrix_data.get_ineq_constr()
    data[s.F] = matrix_data.get_nonlin_constr()
    data[s.DIMS] = sym_data.dims.copy()
    (bool_idx, int_idx) = self._noncvx_id_to_idx(data[s.DIMS], sym_data.var_offsets, sym_data.var_sizes)
    data[s.BOOL_IDX] = bool_idx
    data[s.INT_IDX] = int_idx
    return data
