I am trying to do a difference of convex function (DC) programming problem in CVX for a polynomial. The objective function is convex and there is a non-convex polynomial inequality. It is known that for any polynomial $f(x)$, a suitable convex decomposition of the function which is twice differentiable defined in a compact convex set $\Omega$ is
\begin{align} f(x) = (f(x)+\eta\frac{\lvert|x\rvert|^2}{2})-(\eta\frac{\lvert|x\rvert|^2}{2}) \end{align} where $\eta$ is greater than the spectral value of the Hessian of the polynomial $f(x)$ [Tuy, Convex Analysis and Global Optimization, pp-113]. For a non-convex polynomial inequality: \begin{align} f(x)\leq 0 \end{align} A suitable convex relaxation of the inequality is given by linearizing the negative quadratic part in the above equation about the point $y$ \begin{align} f(x)+\eta\frac{\lvert|x\rvert|^2}{2}-(\eta\frac{\lvert|y\rvert|^2}{2}+\eta y^{T}(x-y))\leq 0 \end{align} The optimization with the relaxed convex inequality is carried out sequentially by updating $y$ until convergence is met.
In my case, the polynomial is cubic and when I implement this on CVX, I get a disciplined convex programming error.
Illegal operation: {convex} - {convex}
while defining the cubic polynomial.
Is there a flaw in my logic?