Пример #1
0
 def canonicalize_tree(self, expr, real2imag, leaf_map):
     # TODO don't copy affine expressions?
     if type(expr) == cvxtypes.partial_problem():
         raise NotImplementedError()
     else:
         real_args = []
         imag_args = []
         for arg in expr.args:
             real_arg, imag_arg = self.canonicalize_tree(
                 arg, real2imag, leaf_map)
             real_args.append(real_arg)
             imag_args.append(imag_arg)
         real_out, imag_out = self.canonicalize_expr(
             expr, real_args, imag_args, real2imag, leaf_map)
     return real_out, imag_out
Пример #2
0
 def canonicalize_tree(self, expr):
     # TODO don't copy affine expressions?
     if type(expr) == cvxtypes.partial_problem():
         canon_expr, constrs = self.canonicalize_tree(
             expr.args[0].objective.expr)
         for constr in expr.args[0].constraints:
             canon_constr, aux_constr = self.canonicalize_tree(constr)
             constrs += [canon_constr] + aux_constr
     else:
         canon_args = []
         constrs = []
         for arg in expr.args:
             canon_arg, c = self.canonicalize_tree(arg)
             canon_args += [canon_arg]
             constrs += c
         canon_expr, c = self.canonicalize_expr(expr, canon_args)
         constrs += c
     return canon_expr, constrs