示例#1
0
	def div(self, a, b):
		if isinstance(a, float):
			if isinstance(b, float):
				if b == 0:
					raise ComputorException('Division by zero')
				return a / b
			elif isinstance(b, Complex):
				return Complex.div(Complex(a), b)
			elif isinstance(b, Matrix):
				raise ComputorException('Illegal operation: Rational / Matrix')
		elif isinstance(a, Complex):
			if isinstance(b, float):
				return Complex.div(a, Complex(b))
			elif isinstance(b, Complex):
				return Complex.div(a, b)
			elif isinstance(b, Matrix):
				raise ComputorException('Illegal operation: Complex / Matrix')
		elif isinstance(a, Matrix):
			if isinstance(b, float):
				if b == 0:
					raise ComputorException('Division by zero')
				return Matrix.scalar_mul(1 / b, a)
			elif isinstance(b, Complex):
				raise ComputorException('Illegal operation: Matrix / Complex')
			elif isinstance(b, Matrix):
				return Matrix.mat_mul(a, b.get_inverse())
		raise ComputorException('Computor.div(): something bad happened 🤷')