def test_mul_tf_mv(self): ga = GeometricAlgebra(metric=dual_metric) zero = ga.zeros([], kind="scalar") zero_tf = ga.as_mv(tf.convert_to_tensor(0.0, dtype=tf.float32)) one = ga.ones([], kind="scalar") one_tf = ga.as_mv(tf.convert_to_tensor(1.0, dtype=tf.float32)) eps = ga.ones([], kind="pseudoscalar") ten = ga.fill([], fill_value=10.0, kind="scalar") ten_tf = ga.as_mv(tf.convert_to_tensor([10.0], dtype=tf.float32)) self.assertEqual(one * one_tf, one) self.assertEqual(one_tf * one, one) self.assertEqual(zero * one_tf, zero) self.assertEqual(one_tf * zero, zero) self.assertEqual(zero_tf * one, zero) self.assertEqual(one * zero_tf, zero) self.assertEqual(one_tf * eps, eps) self.assertEqual(eps * one_tf, eps) self.assertEqual(zero_tf * zero, zero) self.assertEqual(zero * zero_tf, zero) self.assertEqual(ten_tf * zero, zero) self.assertEqual(zero * ten_tf, zero) self.assertEqual(ten * zero_tf, zero) self.assertEqual(zero_tf * ten, zero) self.assertEqual((ten_tf * eps) * eps, zero) self.assertEqual(ten_tf * one, ten) self.assertEqual(one * ten_tf, ten) self.assertEqual(ten * one_tf, ten) self.assertEqual(one_tf * ten, ten)
def test_mul_py_mv(self): ga = GeometricAlgebra(metric=dual_metric) zero = ga.zeros([], kind="scalar") zero_py = 0.0 one = ga.ones([], kind="scalar") one_py = 1.0 eps = ga.ones([], kind="pseudoscalar") ten = ga.fill([], fill_value=10.0, kind="scalar") ten_py = 10.0 self.assertEqual(one * one_py, one) self.assertEqual(one_py * one, one) self.assertEqual(zero * one_py, zero) self.assertEqual(one_py * zero, zero) self.assertEqual(zero_py * one, zero) self.assertEqual(one * zero_py, zero) self.assertEqual(one_py * eps, eps) self.assertEqual(eps * one_py, eps) self.assertEqual(zero_py * zero, zero) self.assertEqual(zero * zero_py, zero) self.assertEqual(ten_py * zero, zero) self.assertEqual(zero * ten_py, zero) self.assertEqual(ten * zero_py, zero) self.assertEqual(zero_py * ten, zero) self.assertEqual((ten_py * eps) * eps, zero) self.assertEqual(ten_py * one, ten) self.assertEqual(one * ten_py, ten) self.assertEqual(ten * one_py, ten) self.assertEqual(one_py * ten, ten)