return cls(n, **kwargs)
class OctonionHermitianEJA(FiniteDimensionalEJA, MatrixEJA):
+ r"""
+
+ SETUP::
+ sage: from mjo.eja.eja_algebra import OctonionHermitianEJA
+
+ EXAMPLES:
+
+ 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
+ Euclidean Jordan algebra of dimension 27 over Rational Field
+
+ TESTS::
+
+ 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
+ b0 + b9 + b26
+ sage: J.one().to_matrix() # long time
+ +----+----+----+
+ | e0 | 0 | 0 |
+ +----+----+----+
+ | 0 | e0 | 0 |
+ +----+----+----+
+ | 0 | 0 | e0 |
+ +----+----+----+
+
+ """
def __init__(self, n, field=AA, **kwargs):
if n > 3:
# Otherwise we don't get an EJA.
super().__init__(self._denormalized_basis(n,field),
self.jordan_product,
self.trace_inner_product,
+ field=field,
**kwargs)
# TODO: this could be factored out somehow, but is left here
EXAMPLES::
- sage: B = OctonionHermitianEJA._denormalized_basis(3)
+ sage: B = OctonionHermitianEJA._denormalized_basis(3,QQ)
sage: all( M.is_hermitian() for M in B )
True
sage: len(B)