Hello

I use `geo_mean()`

in constraint of my Geometric Programing model like this:

`for p=1:phi for m=1:M for k=1:K geo_mean((1+(P(k,:,m,p).*chnl(k,:,m,p))),2,S(k,:,m,p))>=Q end; end; end;`

where *P* and *chnl* and *S* are 4-D matrix of the same size equal to [K,4,M,phi]. Elements of *S* are binary and elements of *P* and *chnl* are nonnegative values.`Q`

is a constant and my optimization variable is *P*.

The error I receive is:

`Error using variable (line 116) Invalid dimension list: xw( nm-1, nv ) Dimension list must be a vector of finite nonnegative integers. Error in geo_mean_cone (line 309) variable xw( nm-1, nv ); Error in cvx/geo_mean (line 87) { cvx_accept_concave(xt), yt } == geo_mean_cone( size(xt), 1, w,'func' ); %#ok Error in anti_relax (line 37) geo_mean((1+(P(k,:,m,p).*chnl(k,:,m,p))),2,S(k,:,m,p))>=Q`

Note that `S(k,:,m,p)`

would never be all zero like this [0 0 0 0].

I traced the program and saw that when there is only one element `1`

and three `zero`

for example `S(k,:,m,p)=[0 0 1 0]`

, this error appears. And when there are more than one elements of `1`

, no error appears.

To my mind, it should not give error when `S(k,:,m,p)=[0 0 1 0]`

. Can anybody help me solve this error? Is this a bug?

Thanks in advance,