This reduction takes as input a DGP problem and returns an equivalent DCP problem. Because every (generalized) geometric program is a DGP problem, this reduction can be used to convert geometric programs into convex form.
accepts(object = Dgp2Dcp, problem = Problem): Is the problem DGP?
perform(object = Dgp2Dcp, problem = Problem): Converts the DGP problem to a DCP problem.
canonicalize_expr(Dgp2Dcp): Canonicalizes each atom within an Dgp2Dcp expression.
invert(object = Dgp2Dcp, solution = Solution, inverse_data = InverseData): Returns the solution to the original problem given the inverse_data.