sage: from mjo.eja.eja_operator import FiniteDimensionalEuclideanJordanAlgebraOperator
sage: from mjo.eja.eja_algebra import (
....: JordanSpinEJA,
- ....: RealCartesianProductEJA,
+ ....: HadamardEJA,
....: RealSymmetricEJA)
EXAMPLES::
sage: J1 = JordanSpinEJA(3)
- sage: J2 = RealCartesianProductEJA(2)
+ sage: J2 = HadamardEJA(2)
sage: J3 = RealSymmetricEJA(1)
sage: mat1 = matrix(QQ, [[1,2,3],
....: [4,5,6]])
SETUP::
- sage: from mjo.eja.eja_algebra import RealSymmetricEJA, random_eja
+ sage: from mjo.eja.eja_algebra import (RealSymmetricEJA,
+ ....: TrivialEJA,
+ ....: random_eja)
EXAMPLES::
sage: x.operator().is_invertible()
True
+ The zero operator is invertible in a trivial algebra::
+
+ sage: J = TrivialEJA()
+ sage: J.zero().operator().is_invertible()
+ True
+
TESTS:
The identity operator is always invertible::
self.codomain(),
mat)
projectors.append(Pi)
- return zip(eigenvalues, projectors)
+ return list(zip(eigenvalues, projectors))