SETUP::
sage: from mjo.eja.eja_algebra import (JordanSpinEJA,
- ....: RealCartesianProductEJA,
+ ....: HadamardEJA,
....: RealSymmetricEJA)
EXAMPLES:
vector representations) back and forth faithfully::
sage: set_random_seed()
- sage: J = RealCartesianProductEJA.random_instance()
+ sage: J = HadamardEJA.random_instance()
sage: x = J.random_element()
sage: J(x.to_vector().column()) == x
True
SETUP::
- sage: from mjo.eja.eja_algebra import (RealCartesianProductEJA,
+ sage: from mjo.eja.eja_algebra import (HadamardEJA,
....: random_eja)
EXAMPLES::
- sage: J = RealCartesianProductEJA(5)
+ sage: J = HadamardEJA(5)
sage: J.one()
e0 + e1 + e2 + e3 + e4
return cls(n, field, **kwargs)
-class RealCartesianProductEJA(FiniteDimensionalEuclideanJordanAlgebra,
- KnownRankEJA):
+class HadamardEJA(FiniteDimensionalEuclideanJordanAlgebra, KnownRankEJA):
"""
Return the Euclidean Jordan Algebra corresponding to the set
`R^n` under the Hadamard product.
SETUP::
- sage: from mjo.eja.eja_algebra import RealCartesianProductEJA
+ sage: from mjo.eja.eja_algebra import HadamardEJA
EXAMPLES:
This multiplication table can be verified by hand::
- sage: J = RealCartesianProductEJA(3)
+ sage: J = HadamardEJA(3)
sage: e0,e1,e2 = J.gens()
sage: e0*e0
e0
We can change the generator prefix::
- sage: RealCartesianProductEJA(3, prefix='r').gens()
+ sage: HadamardEJA(3, prefix='r').gens()
(r0, r1, r2)
"""
mult_table = [ [ V.gen(i)*(i == j) for j in range(n) ]
for i in range(n) ]
- fdeja = super(RealCartesianProductEJA, self)
+ fdeja = super(HadamardEJA, self)
return fdeja.__init__(field, mult_table, rank=n, **kwargs)
def inner_product(self, x, y):
SETUP::
- sage: from mjo.eja.eja_algebra import RealCartesianProductEJA
+ sage: from mjo.eja.eja_algebra import HadamardEJA
TESTS:
over `R^n`::
sage: set_random_seed()
- sage: J = RealCartesianProductEJA.random_instance()
+ sage: J = HadamardEJA.random_instance()
sage: x,y = J.random_elements(2)
sage: X = x.natural_representation()
sage: Y = y.natural_representation()