def solve_with_cvxopt(sdp, solverparameters=None):
P = convert_to_picos(sdp)<EOL>P.set_option("<STR_LIT>", "<STR_LIT>")<EOL>P.set_option("<STR_LIT>", sdp.verbose)<EOL>if solverparameters is not None:<EOL><INDENT>for key, value in solverparameters.items():<EOL><INDENT>P.set_option(key, value)<EOL><DEDENT><DEDENT>solution = P.solve()<EOL>x_mat = [np.array(P.get_valued_variable('<STR_LIT:X>'))]<EOL>y_mat = [np.array(P.get_constraint(i).dual)<EOL>for i in range(len(P.constraints))]<EOL>return -solution["<STR_LIT>"]["<STR_LIT>"] +sdp.constant_term,-solution["<STR_LIT>"]["<STR_LIT>"] +sdp.constant_term,x_mat, y_mat, solution["<STR_LIT:status>"]<EOL>
Helper function to convert the SDP problem to PICOS
    and call CVXOPT solver, and parse the output.

    :param sdp: The SDP relaxation to be solved.
    :type sdp: :class:`ncpol2sdpa.sdp`.