- sage: x = J.linear_combination(zip(range(len(J.gens())), J.gens()))
- sage: x.is_invertible()
- True
- sage: ~x.operator()
- Morphism from Euclidean Jordan algebra of degree 3 over Rational
- Field to Euclidean Jordan algebra of degree 3 over Rational Field
- given by matrix
- [-3/2 2 -1/2]
- [ 1 0 0]
- [-1/2 0 1/2]
- sage: x.operator_matrix().inverse()
- [-3/2 2 -1/2]
- [ 1 0 0]
- [-1/2 0 1/2]
-
- TESTS::
-
- sage: set_random_seed()
- sage: J = random_eja()
- sage: x = J.random_element()
- sage: not x.is_invertible() or (
- ....: (~x.operator()).matrix() == x.operator_matrix().inverse() )
- True
+ sage: id = identity_matrix(J.base_ring(), J.dimension())
+ sage: f = FiniteDimensionalEuclideanJordanAlgebraOperator(J,J,id)
+ sage: g = FiniteDimensionalEuclideanJordanAlgebraOperator(J,J,id)
+ sage: f + g
+ Linear operator between finite-dimensional Euclidean Jordan
+ algebras represented by the matrix:
+ [2 0 0]
+ [0 2 0]
+ [0 0 2]
+ Domain: Euclidean Jordan algebra of degree 3 over Rational Field
+ Codomain: Euclidean Jordan algebra of degree 3 over Rational Field
+
+ If you try to add two identical vector space operators but on
+ different EJAs, that should blow up::
+
+ sage: J1 = RealSymmetricEJA(2)
+ sage: J2 = JordanSpinEJA(3)
+ sage: id = identity_matrix(QQ, 3)
+ sage: f = FiniteDimensionalEuclideanJordanAlgebraOperator(J1,J1,id)
+ sage: g = FiniteDimensionalEuclideanJordanAlgebraOperator(J2,J2,id)
+ sage: f + g
+ Traceback (most recent call last):
+ ...
+ ValueError: operator (co)domains must match