X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=mjo%2Feja%2Feja_algebra.py;h=56be0fa327c83d56bd6d9b2f4283b144ee47806f;hb=e55bb3635ce4f25e45c59e947c144910e03bd09b;hp=7a65fabdcfcd4adf9c2369dd7d64da50e17b1bd3;hpb=49f266e16de87af712beb680570ff39e2ae87de4;p=sage.d.git diff --git a/mjo/eja/eja_algebra.py b/mjo/eja/eja_algebra.py index 7a65fab..56be0fa 100644 --- a/mjo/eja/eja_algebra.py +++ b/mjo/eja/eja_algebra.py @@ -449,9 +449,6 @@ class FiniteDimensionalEuclideanJordanAlgebra(CombinatorialFreeModule): sage: J = ComplexHermitianEJA(3) sage: J.is_trivial() False - sage: A = J.zero().subalgebra_generated_by() - sage: A.is_trivial() - True """ return self.dimension() == 0 @@ -625,14 +622,6 @@ class FiniteDimensionalEuclideanJordanAlgebra(CombinatorialFreeModule): return self.linear_combination(zip(self.gens(), coeffs)) - def random_element(self): - # Temporary workaround for https://trac.sagemath.org/ticket/28327 - if self.is_trivial(): - return self.zero() - else: - s = super(FiniteDimensionalEuclideanJordanAlgebra, self) - return s.random_element() - def random_elements(self, count): """ Return ``count`` random elements as a tuple. @@ -697,11 +686,15 @@ class FiniteDimensionalEuclideanJordanAlgebra(CombinatorialFreeModule): TESTS: Ensure that every EJA that we know how to construct has a - positive integer rank:: + positive integer rank, unless the algebra is trivial in + which case its rank will be zero:: sage: set_random_seed() - sage: r = random_eja().rank() - sage: r in ZZ and r > 0 + sage: J = random_eja() + sage: r = J.rank() + sage: r in ZZ + True + sage: r > 0 or (r == 0 and J.is_trivial()) True """ @@ -852,7 +845,7 @@ class RealCartesianProductEJA(FiniteDimensionalEuclideanJordanAlgebra, return x.to_vector().inner_product(y.to_vector()) -def random_eja(): +def random_eja(field=QQ): """ Return a "random" finite-dimensional Euclidean Jordan Algebra. @@ -889,7 +882,7 @@ def random_eja(): """ classname = choice(KnownRankEJA.__subclasses__()) - return classname.random_instance() + return classname.random_instance(field=field)