示例#1
0
	def mul(self, a, b):
		if isinstance(a, float):
			if isinstance(b, float):
				return a * b
			elif isinstance(b, Complex):
				return Complex.mul(Complex(a), b)
			elif isinstance(b, Matrix):
				return Matrix.scalar_mul(a, b)
		elif isinstance(a, Complex):
			if isinstance(b, float):
				return Complex.mul(a, Complex(b))
			elif isinstance(b, Complex):
				return Complex.mul(a, b)
			elif isinstance(b, Matrix):
				raise ComputorException('Illegal operation: Complex * Matrix')
		elif isinstance(a, Matrix):
			if isinstance(b, float):
				return Matrix.scalar_mul(b, a)
			elif isinstance(b, Complex):
				raise ComputorException('Illegal operation: Matrix * Complex')
			elif isinstance(b, Matrix):
				return Matrix.element_mul(a, b)
		raise ComputorException('Computor.mul(): something bad happened 🤷')