]> gitweb.michael.orlitzky.com - sage.d.git/blobdiff - mjo/eja/eja_element.py
eja: fix a deorthonormalization bug.
[sage.d.git] / mjo / eja / eja_element.py
index ff25b82073a85f9b2f92301d69f37455f231f5ea..14bc8cb742cc7cc95f6c55895c1e4946b95cb6ac 100644 (file)
@@ -131,7 +131,8 @@ class FiniteDimensionalEJAElement(IndexedFreeModuleElement):
 
         SETUP::
 
-            sage: from mjo.eja.eja_algebra import HadamardEJA
+            sage: from mjo.eja.eja_algebra import (random_eja,
+            ....:                                  HadamardEJA)
 
         EXAMPLES:
 
@@ -156,10 +157,10 @@ class FiniteDimensionalEJAElement(IndexedFreeModuleElement):
         to zero on that element::
 
             sage: set_random_seed()
-            sage: x = HadamardEJA(3).random_element()
+            sage: x = random_eja().random_element()
             sage: p = x.characteristic_polynomial()
-            sage: x.apply_univariate_polynomial(p)
-            0
+            sage: x.apply_univariate_polynomial(p).is_zero()
+            True
 
         The characteristic polynomials of the zero and unit elements
         should be what we think they are in a subalgebra, too::
@@ -389,7 +390,7 @@ class FiniteDimensionalEJAElement(IndexedFreeModuleElement):
             sage: (x*y).det() == x.det()*y.det()
             True
 
-        The determinant in matrix algebras is just the usual determinant::
+        The determinant in real matrix algebras is the usual determinant::
 
             sage: set_random_seed()
             sage: X = matrix.random(QQ,3)
@@ -404,21 +405,6 @@ class FiniteDimensionalEJAElement(IndexedFreeModuleElement):
             sage: actual2 == expected
             True
 
-        ::
-
-            sage: set_random_seed()
-            sage: J1 = ComplexHermitianEJA(2)
-            sage: J2 = ComplexHermitianEJA(2,field=QQ,orthonormalize=False)
-            sage: X = matrix.random(GaussianIntegers(), 2)
-            sage: X = X + X.H
-            sage: expected = AA(X.det())
-            sage: actual1 = J1(J1.real_embed(X)).det()
-            sage: actual2 = J2(J2.real_embed(X)).det()
-            sage: expected == actual1
-            True
-            sage: expected == actual2
-            True
-
         """
         P = self.parent()
         r = P.rank()
@@ -1008,8 +994,8 @@ class FiniteDimensionalEJAElement(IndexedFreeModuleElement):
         two here so that said elements actually exist::
 
             sage: set_random_seed()
-            sage: n_max = max(2, JordanSpinEJA._max_random_instance_size())
-            sage: n = ZZ.random_element(2, n_max)
+            sage: d_max = JordanSpinEJA._max_random_instance_dimension()
+            sage: n = ZZ.random_element(2, max(2,d_max))
             sage: J = JordanSpinEJA(n)
             sage: y = J.random_element()
             sage: while y == y.coefficient(0)*J.one():
@@ -1034,8 +1020,8 @@ class FiniteDimensionalEJAElement(IndexedFreeModuleElement):
         and in particular, a re-scaling of the basis::
 
             sage: set_random_seed()
-            sage: n_max = RealSymmetricEJA._max_random_instance_size()
-            sage: n = ZZ.random_element(1, n_max)
+            sage: d_max = RealSymmetricEJA._max_random_instance_dimension()
+            sage: n = ZZ.random_element(1, d_max)
             sage: J1 = RealSymmetricEJA(n)
             sage: J2 = RealSymmetricEJA(n,orthonormalize=False)
             sage: X = random_matrix(AA,n)
@@ -1098,12 +1084,13 @@ class FiniteDimensionalEJAElement(IndexedFreeModuleElement):
             sage: J.one()
             b0 + b3 + b8
             sage: J.one().to_matrix()
-            [1 0 0 0 0 0]
-            [0 1 0 0 0 0]
-            [0 0 1 0 0 0]
-            [0 0 0 1 0 0]
-            [0 0 0 0 1 0]
-            [0 0 0 0 0 1]
+            +---+---+---+
+            | 1 | 0 | 0 |
+            +---+---+---+
+            | 0 | 1 | 0 |
+            +---+---+---+
+            | 0 | 0 | 1 |
+            +---+---+---+
 
         ::
 
@@ -1111,14 +1098,11 @@ class FiniteDimensionalEJAElement(IndexedFreeModuleElement):
             sage: J.one()
             b0 + b5
             sage: J.one().to_matrix()
-            [1 0 0 0 0 0 0 0]
-            [0 1 0 0 0 0 0 0]
-            [0 0 1 0 0 0 0 0]
-            [0 0 0 1 0 0 0 0]
-            [0 0 0 0 1 0 0 0]
-            [0 0 0 0 0 1 0 0]
-            [0 0 0 0 0 0 1 0]
-            [0 0 0 0 0 0 0 1]
+            +---+---+
+            | 1 | 0 |
+            +---+---+
+            | 0 | 1 |
+            +---+---+
 
         This also works in Cartesian product algebras::