3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-08 07:03:23 +00:00

pull unstable

Signed-off-by: Nikolaj Bjorner <nbjorner@hotmail.com>
This commit is contained in:
Nikolaj Bjorner 2015-04-01 14:57:11 -07:00
commit 52619b9dbb
337 changed files with 24943 additions and 30606 deletions

View file

@ -46,6 +46,15 @@ class ComplexExpr:
other = _to_complex(other)
return ComplexExpr(other.r*self.r - other.i*self.i, other.i*self.r + other.r*self.i)
def __pow__(self, k):
if k == 0:
return ComplexExpr(1, 0)
if k == 1:
return self
if k < 0:
return (self ** (-k)).inv()
return reduce(lambda x, y: x * y, [self for _ in xrange(k)], ComplexExpr(1, 0))
def inv(self):
den = self.r*self.r + self.i*self.i
return ComplexExpr(self.r/den, -self.i/den)
@ -65,9 +74,6 @@ class ComplexExpr:
def __neq__(self, other):
return Not(self.__eq__(other))
def __pow__(self, k):
def simplify(self):
return ComplexExpr(simplify(self.r), simplify(self.i))
@ -107,4 +113,5 @@ print(s.model())
s.add(x.i != 1)
print(s.check())
# print(s.model())
print (3 + I)^2/(5 - I)
print ((3 + I) ** 2)/(5 - I)
print ((3 + I) ** -3)/(5 - I)