EXAMPLES:
- The inner product must satisfy its axiom for this algebra to truly
- be a Euclidean Jordan Algebra::
+ Our inner product satisfies the Jordan axiom, which is also
+ referred to as "associativity" for a symmetric bilinear form::
sage: set_random_seed()
sage: J = random_eja()
sage: RealCartesianProductEJA(3, prefix='r').gens()
(r0, r1, r2)
- Our inner product satisfies the Jordan axiom::
-
- sage: set_random_seed()
- sage: J = RealCartesianProductEJA.random_instance()
- sage: x = J.random_element()
- sage: y = J.random_element()
- sage: z = J.random_element()
- sage: (x*y).inner_product(z) == y.inner_product(x*z)
- True
-
"""
def __init__(self, n, field=QQ, **kwargs):
V = VectorSpace(field, n)
sage: RealSymmetricEJA(3, prefix='q').gens()
(q0, q1, q2, q3, q4, q5)
- Our inner product satisfies the Jordan axiom::
-
- sage: set_random_seed()
- sage: J = RealSymmetricEJA.random_instance()
- sage: x = J.random_element()
- sage: y = J.random_element()
- sage: z = J.random_element()
- sage: (x*y).inner_product(z) == y.inner_product(x*z)
- True
-
Our natural basis is normalized with respect to the natural inner
product unless we specify otherwise::
sage: ComplexHermitianEJA(2, prefix='z').gens()
(z0, z1, z2, z3)
- Our inner product satisfies the Jordan axiom::
-
- sage: set_random_seed()
- sage: J = ComplexHermitianEJA.random_instance()
- sage: x = J.random_element()
- sage: y = J.random_element()
- sage: z = J.random_element()
- sage: (x*y).inner_product(z) == y.inner_product(x*z)
- True
-
Our natural basis is normalized with respect to the natural inner
product unless we specify otherwise::
sage: QuaternionHermitianEJA(2, prefix='a').gens()
(a0, a1, a2, a3, a4, a5)
- Our inner product satisfies the Jordan axiom::
-
- sage: set_random_seed()
- sage: J = QuaternionHermitianEJA.random_instance()
- sage: x = J.random_element()
- sage: y = J.random_element()
- sage: z = J.random_element()
- sage: (x*y).inner_product(z) == y.inner_product(x*z)
- True
-
Our natural basis is normalized with respect to the natural inner
product unless we specify otherwise::
sage: JordanSpinEJA(2, prefix='B').gens()
(B0, B1)
- Our inner product satisfies the Jordan axiom::
-
- sage: set_random_seed()
- sage: J = JordanSpinEJA.random_instance()
- sage: x = J.random_element()
- sage: y = J.random_element()
- sage: z = J.random_element()
- sage: (x*y).inner_product(z) == y.inner_product(x*z)
- True
-
"""
def __init__(self, n, field=QQ, **kwargs):
V = VectorSpace(field, n)