# DCP problem: Illegal operation: {concave} - {complex affine}

Hi all,

I am trying to optimize a concave and an affine function and I got a DCP error. The code looks like:

``````OmegaOld = zeros(2,2,3);
H = 1/sqrt(2)*(randn(2, 6, 3) + 1i*randn(2, 6, 3));
for i=1:d_users
OmegaOld(:,:,i) = eye(6);
end

cvx_begin

variable CovMat(6,6,3) complex
variable Omega(2,2,3) complex
expression rate(3,1);

for i=1:d_users
rate(i) = log_det(Omega(:,:,i) + H(:,:,i)*CovMat(:,:,i)*H(:,:,i)')
- trace(inv(OmegaOld(:,:,i))*Omega(:,:,i));
end

maximize(sum(rate))
...
``````

There are other constraints but not shown here as the problem is with the objective function. Is there a way to reformulate the previous concave-affine objective fulfilling DCP ruleset?

Thank you very much.

Regards

I’m not sure why you are seeing {concave}-{complex affine}, but I can tell you that `log_det` is for symmetric/Hermitian matrices, and you have not declared `Omega` or `CovMat` to be hermitian.

Thanks for the reply. I have a constraint of the form: CovMat(:,:,i) == hermitian_semidefinite(tx_ant); So, yes, these matrices are hermitian. Any ideas with the {concave}-{complex affine}?
Thank you!

That’s not sufficient; you need to declare them as hermitian; e.g. `variable Omega(2,2,3) hermitian`. Also, try wrapping that `trace` statement in a `real`; i.e. `real(trace(inv(`