From 644eb599855ddd51e8731104cc337eb9a4a33abe Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Tue, 23 Jul 2019 23:23:02 -0400 Subject: [PATCH] eja: add an implementation warning for characteristic_polynomial(). --- mjo/eja/euclidean_jordan_algebra.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/mjo/eja/euclidean_jordan_algebra.py b/mjo/eja/euclidean_jordan_algebra.py index c37ace0..b31322f 100644 --- a/mjo/eja/euclidean_jordan_algebra.py +++ b/mjo/eja/euclidean_jordan_algebra.py @@ -140,6 +140,20 @@ class FiniteDimensionalEuclideanJordanAlgebra(FiniteDimensionalAlgebra): @cached_method def characteristic_polynomial(self): """ + + .. WARNING:: + + This implementation doesn't guarantee that the polynomial + denominator in the coefficients is not identically zero, so + theoretically it could crash. The way that this is handled + in e.g. Faraut and Koranyi is to use a basis that guarantees + the denominator is non-zero. But, doing so requires knowledge + of at least one regular element, and we don't even know how + to do that. The trade-off is that, if we use the standard basis, + the resulting polynomial will accept the "usual" coordinates. In + other words, we don't have to do a change of basis before e.g. + computing the trace or determinant. + EXAMPLES: The characteristic polynomial in the spin algebra is given in -- 2.44.2