]> gitweb.michael.orlitzky.com - sage.d.git/blobdiff - mjo/eja/eja_operator.py
eja: make some element tests work in trivial algebras.
[sage.d.git] / mjo / eja / eja_operator.py
index 41d68560524e9394a97dc6ff3ecbaf19e27cd06a..c073bc41ad85d73fd942efe4e20f8e6f90bd1781 100644 (file)
@@ -420,14 +420,13 @@ class FiniteDimensionalEuclideanJordanAlgebraOperator(Map):
             sage: idJ.inverse() == idJ
             True
 
-        The zero operator is never invertible::
+        The inverse of the inverse is the operator we started with::
 
             sage: set_random_seed()
-            sage: J = random_eja()
-            sage: J.zero().operator().inverse()
-            Traceback (most recent call last):
-            ...
-            ZeroDivisionError: input matrix must be nonsingular
+            sage: x = random_eja().random_element()
+            sage: L = x.operator()
+            sage: not L.is_invertible() or (L.inverse().inverse() == L)
+            True
 
         """
         return ~self
@@ -463,11 +462,11 @@ class FiniteDimensionalEuclideanJordanAlgebraOperator(Map):
             sage: J.one().operator().is_invertible()
             True
 
-        The zero operator is never invertible::
+        The zero operator is never invertible in a nontrivial algebra::
 
             sage: set_random_seed()
             sage: J = random_eja()
-            sage: J.zero().operator().is_invertible()
+            sage: not J.is_trivial() and J.zero().operator().is_invertible()
             False
 
         """
@@ -524,6 +523,11 @@ class FiniteDimensionalEuclideanJordanAlgebraOperator(Map):
         Return the spectral decomposition of this operator as a list of
         (eigenvalue, orthogonal projector) pairs.
 
+        This is the unique spectral decomposition, up to the order of
+        the projection operators, with distinct eigenvalues. So, the
+        projections are generally onto subspaces of dimension greater
+        than one.
+
         SETUP::
 
             sage: from mjo.eja.eja_algebra import RealSymmetricEJA
@@ -547,15 +551,9 @@ class FiniteDimensionalEuclideanJordanAlgebraOperator(Map):
             True
             sage: P1^2 == P1
             True
-            sage: c0 = P0(A.one())
-            sage: c1 = P1(A.one())
-            sage: c0.inner_product(c1) == 0
-            True
-            sage: c0 + c1 == A.one()
-            True
-            sage: c0.is_idempotent()
+            sage: P0*P1 == A.zero().operator()
             True
-            sage: c1.is_idempotent()
+            sage: P1*P0 == A.zero().operator()
             True
 
         """