mirror of
				https://github.com/Z3Prover/z3
				synced 2025-10-31 11:42:28 +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:
		
							parent
							
								
									3b16cfbd44
								
							
						
					
					
						commit
						e456af142e
					
				
					 1 changed files with 11 additions and 1 deletions
				
			
		|  | @ -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) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue