3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-06 09:34:08 +00:00

fix complex.py example with power prompted by suggestion of smilliken

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2015-03-27 02:42:08 -07:00
parent 3b16cfbd44
commit e456af142e

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)
@ -104,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)