I want toe express the following expression in the cvx, i.e.,

norm(conj(transpose(v))Hw)^2

where ‘v’ is a complex variable of size K*1, ‘H’ and ‘w’ are all given variables.

In the code, I expressed the above expression as ‘pow_p(norm(conj(transpose(v))*H*w),2)’.

But the cvx gave warning as follows:

Disciplined convex programming error:

Illegal operation: pow_p( {convex}, {2} )

`square_pos(norm(...))`

or

`pow_pos(norm(...),2)`

As can be seem below, when the 2nd argument of `pow_p`

is 2, the first argument of `pow_p`

must be affine, which `norm`

is not.

help pow_p

pow_p Positive branch of the power function.

pow_p(X,P) computes a convex or concave branch of the power function:

P < 0: pow_p(X,P) = X.^P if X > 0, +Inf otherwise

0 <= P < 1: pow_p(X,P) = X.^P if X >= 0, -Inf otherwise

1 <= P : pow_p(X,P) = X.^P if X >= 0, +Inf otherwise

Both P and X must be real.

```
Disciplined convex programming information:
The geometry of pow_p(X,P) depends on the precise value of P,
which must be a real constant:
P < 0: convex and nonincreasing; X must be concave.
0 <= P < 1: concave and nondecreasing; X must be concave.
1 <= P : convex and nonmonotonic; X must be affine.
In all cases, X must be real.
```

HAHA!

Initially, I just find the pow_p and do not find the pow_pos.

Sir! Thank you very much! Thanks for your help!

I have asked many questions in this forum! And you help me a lot!

You should (re-)read this section of the CV User’s GUide http://cvxr.com/cvx/doc/funcref.html# , for a list of all the functions, and some other stuff.

`help <function name>`

has more information than the CVX Uses’ Guide. For instance, whether arguments need to be affine, convex, or concave.