From f70078336355f24237698004ac16078672a427d8 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Tue, 23 Jul 2019 00:51:18 -0400 Subject: [PATCH] eja: finally enable tests for the trace inner product. --- mjo/eja/TODO | 44 ----------------------------- mjo/eja/euclidean_jordan_algebra.py | 41 +++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 44 deletions(-) delete mode 100644 mjo/eja/TODO diff --git a/mjo/eja/TODO b/mjo/eja/TODO deleted file mode 100644 index dd671c5..0000000 --- a/mjo/eja/TODO +++ /dev/null @@ -1,44 +0,0 @@ -Trace inner product tests: - - TESTS: - - The trace inner product is commutative:: - - sage: set_random_seed() - sage: J = random_eja() - sage: x = J.random_element(); y = J.random_element() - sage: x.trace_inner_product(y) == y.trace_inner_product(x) - True - - The trace inner product is bilinear:: - - sage: set_random_seed() - sage: J = random_eja() - sage: x = J.random_element() - sage: y = J.random_element() - sage: z = J.random_element() - sage: a = QQ.random_element(); - sage: actual = (a*(x+z)).trace_inner_product(y) - sage: expected = a*x.trace_inner_product(y) + a*z.trace_inner_product(y) - sage: actual == expected - True - sage: actual = x.trace_inner_product(a*(y+z)) - sage: expected = a*x.trace_inner_product(y) + a*x.trace_inner_product(z) - sage: actual == expected - True - - The trace inner product is associative:: - - sage: pass - - The trace inner product satisfies the compatibility - condition in the definition of a Euclidean Jordan algebra: - - sage: set_random_seed() - sage: J = random_eja() - sage: x = J.random_element() - sage: y = J.random_element() - sage: z = J.random_element() - sage: (x*y).trace_inner_product(z) == y.trace_inner_product(x*z) - True - \ No newline at end of file diff --git a/mjo/eja/euclidean_jordan_algebra.py b/mjo/eja/euclidean_jordan_algebra.py index 74c0bf1..c37ace0 100644 --- a/mjo/eja/euclidean_jordan_algebra.py +++ b/mjo/eja/euclidean_jordan_algebra.py @@ -1233,6 +1233,47 @@ class FiniteDimensionalEuclideanJordanAlgebra(FiniteDimensionalAlgebra): def trace_inner_product(self, other): """ Return the trace inner product of myself and ``other``. + + TESTS: + + The trace inner product is commutative:: + + sage: set_random_seed() + sage: J = random_eja() + sage: x = J.random_element(); y = J.random_element() + sage: x.trace_inner_product(y) == y.trace_inner_product(x) + True + + The trace inner product is bilinear:: + + sage: set_random_seed() + sage: J = random_eja() + sage: x = J.random_element() + sage: y = J.random_element() + sage: z = J.random_element() + sage: a = QQ.random_element(); + sage: actual = (a*(x+z)).trace_inner_product(y) + sage: expected = ( a*x.trace_inner_product(y) + + ....: a*z.trace_inner_product(y) ) + sage: actual == expected + True + sage: actual = x.trace_inner_product(a*(y+z)) + sage: expected = ( a*x.trace_inner_product(y) + + ....: a*x.trace_inner_product(z) ) + sage: actual == expected + True + + The trace inner product satisfies the compatibility + condition in the definition of a Euclidean Jordan algebra:: + + sage: set_random_seed() + sage: J = random_eja() + sage: x = J.random_element() + sage: y = J.random_element() + sage: z = J.random_element() + sage: (x*y).trace_inner_product(z) == y.trace_inner_product(x*z) + True + """ if not other in self.parent(): raise TypeError("'other' must live in the same algebra") -- 2.43.2