  We introduce log-log convex programs, which are optimization problems with
positive variables that become convex when the variables, objective functions,
and constraint functions are replaced with their logs, which we refer to as a
log-log transformation. This class of problems generalizes traditional
geometric programming and generalized geometric programming, and it includes
interesting problems involving nonnegative matrices. We give examples of
log-log convex functions, some well-known and some less so, and we develop an
analog of disciplined convex programming, which we call disciplined geometric
programming. Disciplined geometric programming is a subclass of log-log convex
programming generated by a composition rule and a set of functions with known
curvature under the log-log transformation. Finally, we describe an
implementation of disciplined geometric programming as a reduction in CVXPY
1.0.
