In cvx 2.2, if I use the 9.1.9 mosek solver, do I need to use rel _ entr _ quad for the logarithm function? Or just use rel _ entr.
With CVX 2.2 and Mosek 9.x or 10.x as solver, just use
log’ for logarithm.
If not using Mosek as solver, install CVXQUAD with its
exponential.m replacement and use
-rel_entr(1,x) in place of
log(x). Or you can use
-rel_entr_quad(1,x) in place of
log(x). But there is no need to ever use
rel_entr_quad, which from a user prespective is identical to
rel_entr, but which requires CVXQUAD, or it will not run at all).
If Mosek is used, there is only a need or benefit to use CVXQUAD if its quantum, i.e., matrix level, functions are needed. I.e.,
quantum_entr(X), quantum_rel_entr(X,Y), trace_logm(X,C), trace_mpower(X,t,C), lieb_ando(X,Y,K,t)
For addtional details, see CVXQUAD: How to use CVXQUAD's Pade Approximant instead of CVX's unreliable Successive Approximation for GP mode, log, exp, entr, rel_entr, kl_div, log_det, det_rootn, exponential cone. CVXQUAD's Quantum (Matrix) Entropy & Matrix Log related functions .
it is better to use the latest (stable) Mosek version, currently 10.0.46, than to use Mosek 9.1.9, which is bundled with CVX 2.2. Or you could use Mosek 10.1, currently in beta, downloadable at Mosek - Latest: MOSEK 10.1 .
To make sure you don’t wind up using Mosek 9.1.9 which is bundled with CVX 2.2:
First download latest Mosek and install under MATLAB. Make sure mosekdiag succeeds. Then reinstall CVX so it will find the new solver.
Either delete or rename the mosek directory under CVX (before reinstalling CVX)
cvx_solver shows all the versions of all the solvers available to CVX. Choose the Mosek 10.x version, which might be called something like Mosek_2, then use
cvx_solver Mosek_2 to get that version, and you can
In any event,
cvx_solver will show all the versions available to CVX.
Follow the instructions to dump the Mosek task file from CVX as shown at 1 Technical Issues — MOSEK FAQ 10.0.46
and send the resulting file to Mosek support.
Also, perhaps you can show your CVX program here? Even better if it is reproducible with all input data.
Most likely your data is unusual and hence it triggers a corner case i.e. a bug.
In order to make a robust I strongly recommend you follow the advice of @mark_l_stone.