The constraint
0 >= gamma*sigma + gamma*(delta/theta) - abs(trace(H*W));
is not convex.
The term gamma*(delta/theta)
can be rewritten as gamma*delta*inv_pos(theta)
, but because gamma*delta
is negative, that term is concave, and therefore makes the constraint non-convex.
Even if gamma*delta
were positive, the term -abs(trace(H*W)
is also concave, and makes the constraint non-convex.
If you have a typo, and really meant >=
rather than <=
, use of inv_pos
would allow the constraint, and the whole program, to be accepted by CVX.