Can I solve signomial programming using CVX?

I was just wondering if CVX can support signomial programming, a generic form of geometric programming.

I am trying to solve, something similar to the following problem:

max R
s.t. R <= log(1 + S/(N+I)).

Here, R, S and I are variables. If S >> (N + I), I can assume log(1 + S/(N + I)) as log(S/(N + I)) and turn the above problem into a standard geometric problem. However, I have to tackle scenarios where S/(N + I) << 1 and I cannot use the above assumption.

One possible approach is the condensation method (

max R
s.t. - R >= log((N + I)/(S + N + I))

If the denominator of the log term can be approximated as a monomial, the above problem will become a standard GP. Can I use CVX to tackle this kind of signomial programs?

If not, is there any other software that can solve this type of problems? Any suggestion will be appreciated.


I do not believe that CVX can handle signomial programming. The only non-convex forms CVX supports are generalized geometric programs and mixed-integer disciplined convex programs.