Ensure that computing the rank actually works, since the ranks
of all simple algebras are known and will be cached by default::
- sage: J = random_eja() # long time
- sage: cached = J.rank() # long time
- sage: J.rank.clear_cache() # long time
- sage: J.rank() == cached # long time
+ sage: # long time
+ sage: J = random_eja()
+ sage: cached = J.rank()
+ sage: J.rank.clear_cache()
+ sage: J.rank() == cached
True
"""
The 3-by-3 algebra satisfies the axioms of an EJA::
- sage: OctonionHermitianEJA(3, # long time
- ....: field=QQ, # long time
- ....: orthonormalize=False, # long time
- ....: check_axioms=True) # long time
+ sage: # long time
+ sage: OctonionHermitianEJA(3,
+ ....: field=QQ,
+ ....: orthonormalize=False,
+ ....: check_axioms=True)
Euclidean Jordan algebra of dimension 27 over Rational Field
After a change-of-basis, the 2-by-2 algebra has the same
We can actually construct the 27-dimensional Albert algebra,
and we get the right unit element if we recompute it::
- sage: J = OctonionHermitianEJA(3, # long time
- ....: field=QQ, # long time
- ....: orthonormalize=False) # long time
- sage: J.one.clear_cache() # long time
- sage: J.one() # long time
+ sage: # long time
+ sage: J = OctonionHermitianEJA(3,
+ ....: field=QQ,
+ ....: orthonormalize=False)
+ sage: J.one.clear_cache()
+ sage: J.one()
b0 + b9 + b26
- sage: J.one().to_matrix() # long time
+ sage: J.one().to_matrix()
+----+----+----+
| e0 | 0 | 0 |
+----+----+----+
The cached unit element is the same one that would be computed::
- sage: J1 = random_eja() # long time
- sage: J2 = random_eja() # long time
- sage: J = cartesian_product([J1,J2]) # long time
- sage: actual = J.one() # long time
- sage: J.one.clear_cache() # long time
- sage: expected = J.one() # long time
- sage: actual == expected # long time
+ sage: # long time
+ sage: J1 = random_eja()
+ sage: J2 = random_eja()
+ sage: J = cartesian_product([J1,J2])
+ sage: actual = J.one()
+ sage: J.one.clear_cache()
+ sage: expected = J.one()
+ sage: actual == expected
True
"""
Element = CartesianProductEJAElement