X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=mjo%2Feja%2Feja_element.py;h=d9b6eb12fe27363721763fc1e6ccb60c7f98aabd;hb=9528af011cbb4d5e6a38ef972e0d14e7928d5eef;hp=f26766df80f65de8c31fe12ef3eab5d5bd727c7a;hpb=16825a1ceedeb8363b025cda56dc9f65f639f726;p=sage.d.git diff --git a/mjo/eja/eja_element.py b/mjo/eja/eja_element.py index f26766d..d9b6eb1 100644 --- a/mjo/eja/eja_element.py +++ b/mjo/eja/eja_element.py @@ -1,3 +1,5 @@ +from itertools import izip + from sage.matrix.constructor import matrix from sage.modules.free_module import VectorSpace from sage.modules.with_basis.indexed_element import IndexedFreeModuleElement @@ -78,7 +80,7 @@ class FiniteDimensionalEuclideanJordanAlgebraElement(IndexedFreeModuleElement): elif n == 1: return self else: - return (self.operator()**(n-1))(self) + return (self**(n-1))*self def apply_univariate_polynomial(self, p): @@ -243,9 +245,8 @@ class FiniteDimensionalEuclideanJordanAlgebraElement(IndexedFreeModuleElement): sage: set_random_seed() sage: J = random_eja() - sage: x = J.random_element() - sage: y = J.random_element() - sage: x.inner_product(y) in RR + sage: x,y = J.random_elements(2) + sage: x.inner_product(y) in RLF True """ @@ -280,9 +281,7 @@ class FiniteDimensionalEuclideanJordanAlgebraElement(IndexedFreeModuleElement): Test Lemma 1 from Chapter III of Koecher:: sage: set_random_seed() - sage: J = random_eja() - sage: u = J.random_element() - sage: v = J.random_element() + sage: u,v = random_eja().random_elements(2) sage: lhs = u.operator_commutes_with(u*v) sage: rhs = v.operator_commutes_with(u^2) sage: lhs == rhs @@ -292,9 +291,7 @@ class FiniteDimensionalEuclideanJordanAlgebraElement(IndexedFreeModuleElement): Chapter III, or from Baes (2.3):: sage: set_random_seed() - sage: J = random_eja() - sage: x = J.random_element() - sage: y = J.random_element() + sage: x,y = random_eja().random_elements(2) sage: Lx = x.operator() sage: Ly = y.operator() sage: Lxx = (x*x).operator() @@ -306,10 +303,7 @@ class FiniteDimensionalEuclideanJordanAlgebraElement(IndexedFreeModuleElement): Baes (2.4):: 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,z = random_eja().random_elements(3) sage: Lx = x.operator() sage: Ly = y.operator() sage: Lz = z.operator() @@ -323,10 +317,7 @@ class FiniteDimensionalEuclideanJordanAlgebraElement(IndexedFreeModuleElement): Baes (2.5):: sage: set_random_seed() - sage: J = random_eja() - sage: u = J.random_element() - sage: y = J.random_element() - sage: z = J.random_element() + sage: u,y,z = random_eja().random_elements(3) sage: Lu = u.operator() sage: Ly = y.operator() sage: Lz = z.operator() @@ -388,8 +379,7 @@ class FiniteDimensionalEuclideanJordanAlgebraElement(IndexedFreeModuleElement): sage: set_random_seed() sage: J = random_eja().random_element().subalgebra_generated_by() - sage: x = J.random_element() - sage: y = J.random_element() + sage: x,y = J.random_elements(2) sage: (x*y).det() == x.det()*y.det() True @@ -766,7 +756,7 @@ class FiniteDimensionalEuclideanJordanAlgebraElement(IndexedFreeModuleElement): sage: n_max = RealSymmetricEJA._max_test_case_size() sage: n = ZZ.random_element(1, n_max) sage: J1 = RealSymmetricEJA(n,QQ) - sage: J2 = RealSymmetricEJA(n,QQ,False) + sage: J2 = RealSymmetricEJA(n,QQ,normalize_basis=False) sage: X = random_matrix(QQ,n) sage: X = X*X.transpose() sage: x1 = J1(X) @@ -842,7 +832,7 @@ class FiniteDimensionalEuclideanJordanAlgebraElement(IndexedFreeModuleElement): """ B = self.parent().natural_basis() W = self.parent().natural_basis_space() - return W.linear_combination(zip(B,self.to_vector())) + return W.linear_combination(izip(B,self.to_vector())) def norm(self): @@ -885,8 +875,7 @@ class FiniteDimensionalEuclideanJordanAlgebraElement(IndexedFreeModuleElement): sage: set_random_seed() sage: J = random_eja() - sage: x = J.random_element() - sage: y = J.random_element() + sage: x,y = J.random_elements(2) sage: x.operator()(y) == x*y True sage: y.operator()(x) == x*y @@ -936,8 +925,7 @@ class FiniteDimensionalEuclideanJordanAlgebraElement(IndexedFreeModuleElement): sage: set_random_seed() sage: J = random_eja() - sage: x = J.random_element() - sage: y = J.random_element() + sage: x,y = J.random_elements(2) sage: Lx = x.operator() sage: Lxx = (x*x).operator() sage: Qx = x.quadratic_representation() @@ -982,10 +970,10 @@ class FiniteDimensionalEuclideanJordanAlgebraElement(IndexedFreeModuleElement): sage: not x.is_invertible() or ( ....: x.quadratic_representation(x.inverse())*Qx ....: == - ....: 2*x.operator()*Qex - Qx ) + ....: 2*Lx*Qex - Qx ) True - sage: 2*x.operator()*Qex - Qx == Lxx + sage: 2*Lx*Qex - Qx == Lxx True Property 5: @@ -1039,9 +1027,7 @@ class FiniteDimensionalEuclideanJordanAlgebraElement(IndexedFreeModuleElement): sage: set_random_seed() sage: x0 = random_eja().random_element() sage: A = x0.subalgebra_generated_by() - sage: x = A.random_element() - sage: y = A.random_element() - sage: z = A.random_element() + sage: x,y,z = A.random_elements(3) sage: (x*y)*z == x*(y*z) True @@ -1152,7 +1138,7 @@ class FiniteDimensionalEuclideanJordanAlgebraElement(IndexedFreeModuleElement): sage: set_random_seed() sage: J = random_eja() - sage: J.random_element().trace() in J.base_ring() + sage: J.random_element().trace() in RLF True """ @@ -1181,9 +1167,7 @@ class FiniteDimensionalEuclideanJordanAlgebraElement(IndexedFreeModuleElement): 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,z = J.random_elements(3) sage: # commutative sage: x.trace_inner_product(y) == y.trace_inner_product(x) True