Ejemplo n.º 1
0
    def expr(self, use_reals):
        """
        cannot make this as property because z3 expr is ctype,
        not compat with multiprocessing Queue

        also, cannot save this to sel._expr
        """
        return Z3.parse(str(self.inv), use_reals)
Ejemplo n.º 2
0
Archivo: mp.py Proyecto: ruricolist/dig
    def expr(self, use_reals):
        """
        # sage: x, y, z = sage.all.var('x y z')
        # sage: mp = MPInv.mk_max_ieq((x-10, y-3), (y, 5))
        # sage: mp.expr(use_reals=False)
        # If(x + -10 >= y + -3, If(y >= 5, x + -10 <= y, x + -10 <= 5),
        #    If(y >= 5, y + -3 <= y, y + -3 <= 5))

        # sage: MPInv.mk_max_ieq((x,), (y,z,0)).expr(use_reals=False)
        # If(And(y >= z, y >= 0), x <= y, If(z >= 0, x <= z, x <= 0))
        """

        a = tuple(Z3.parse(str(x), use_reals) for x in self.term.a)
        b = tuple(Z3.parse(str(x), use_reals) for x in self.term.b)

        expr = self.mp2df_expr(a, b, 0, self.term.is_max, self.is_ieq)

        return expr
Ejemplo n.º 3
0
 def expr(self, use_reals):
     try:
         return self._expr
     except AttributeError:
         self._expr = Z3.parse(str(self.sageExpr), use_reals)
         return self._expr