  We present a composition rule involving quasiconvex functions that
generalizes the classical composition rule for convex functions. This rule
complements well-known rules for the curvature of quasiconvex functions under
increasing functions and pointwise maximums. We refer to the class of
optimization problems generated by these rules, along with a base set of
quasiconvex and quasiconcave functions, as disciplined quasiconvex programs.
Disciplined quasiconvex programming generalizes disciplined convex programming,
the class of optimization problems targeted by most modern domain-specific
languages for convex optimization. We describe an implementation of disciplined
quasiconvex programming that makes it possible to specify and solve quasiconvex
programs in CVXPY 1.0.
