Add __truediv__() for cmath

This commit is contained in:
faze-geek 2024-03-01 17:49:39 +05:30
parent 39fe442575
commit 6b80256929

View File

@ -65,6 +65,18 @@ class complex:
def __rmul__(self, other):
return self.__mul__(other)
def __truediv__(self, other):
if type(other) is complex:
denominator = other.real ** 2 + other.imag ** 2
real_part = (self.real * other.real + self.imag * other.imag) / denominator
imag_part = (self.imag * other.real - self.real * other.imag) / denominator
return complex(real_part, imag_part)
if type(other) in (int, float):
if other == 0:
raise ZeroDivisionError("Division by zero in complex number division")
return complex(self.real / other, self.imag / other)
return NotImplemented
def __pow__(self, other: int | float):
if type(other) in (int, float):
return complex(self.__abs__() ** other * math.cos(other * phase(self)),