X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=mjo%2Feja%2Feja_element.py;h=14bc8cb742cc7cc95f6c55895c1e4946b95cb6ac;hb=2eead94218aad1f63faec9cdeacc30171a880438;hp=ff25b82073a85f9b2f92301d69f37455f231f5ea;hpb=f98ab4d7afa92a853e7ddc75cdac803d2da4fcb9;p=sage.d.git diff --git a/mjo/eja/eja_element.py b/mjo/eja/eja_element.py index ff25b82..14bc8cb 100644 --- a/mjo/eja/eja_element.py +++ b/mjo/eja/eja_element.py @@ -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::