- if x in self.base_ring():
- cols = self.domain().dimension()
- rows = self.codomain().dimension()
- x = x*identity_matrix(self.codomain().base_ring(), rows, cols)
- return FiniteDimensionalEuclideanJordanAlgebraMorphism(self, x)
-
-
- def one(self):
- """
- Return the identity morphism, but as a member of the right
- space (so that we can add it, multiply it, etc.)
- """
- cols = self.domain().dimension()
- rows = self.codomain().dimension()
- mat = identity_matrix(self.base_ring(), rows, cols)
- return FiniteDimensionalEuclideanJordanAlgebraMorphism(self, mat)
-
-
-
-class FiniteDimensionalEuclideanJordanAlgebraMorphism(FiniteDimensionalAlgebraMorphism):
- """
- A linear map between two finite-dimensional EJAs.
-
- This is a very thin wrapper around FiniteDimensionalAlgebraMorphism
- that does only a few things:
-
- 1. Avoids the ``unitary`` and ``check`` arguments to the constructor
- that will always be ``False``. This is necessary because these
- are homomorphisms with respect to ADDITION, but the SageMath
- machinery wants to check that they're homomorphisms with respect
- to (Jordan) MULTIPLICATION. That obviously doesn't work.
-
- 2. Inputs and outputs the underlying matrix with respect to COLUMN
- vectors, unlike the parent class.