X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=mjo%2Feja%2Feja_operator.py;h=7c3b2a6a4721848caaaf4d30cecbb08d0eab587f;hb=16dfa403c6eb709d3a5188a0f19919652b6a225d;hp=b225b295c9e0f4e87befb02e28870eb7a0d1b9dd;hpb=9c86e23e2ef79fb9d7003f68952750dda0ca0e0b;p=sage.d.git diff --git a/mjo/eja/eja_operator.py b/mjo/eja/eja_operator.py index b225b29..7c3b2a6 100644 --- a/mjo/eja/eja_operator.py +++ b/mjo/eja/eja_operator.py @@ -1,4 +1,4 @@ -from sage.all import matrix +from sage.matrix.constructor import matrix from sage.categories.all import FreeModules from sage.categories.map import Map @@ -46,14 +46,14 @@ class FiniteDimensionalEuclideanJordanAlgebraOperator(Map): EXAMPLES:: sage: J = JordanSpinEJA(3) - sage: x = J.linear_combination(zip(range(len(J.gens())), J.gens())) + sage: x = J.linear_combination(zip(J.gens(),range(len(J.gens())))) sage: id = identity_matrix(J.base_ring(), J.dimension()) sage: f = FiniteDimensionalEuclideanJordanAlgebraOperator(J,J,id) sage: f(x) == x True """ - return self.codomain()(self.matrix()*x.vector()) + return self.codomain().from_vector(self.matrix()*x.to_vector()) def _add_(self, other): @@ -81,8 +81,10 @@ class FiniteDimensionalEuclideanJordanAlgebraOperator(Map): [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 + Domain: Euclidean Jordan algebra of dimension 3 over + Rational Field + Codomain: Euclidean Jordan algebra of dimension 3 over + Rational Field If you try to add two identical vector space operators but on different EJAs, that should blow up:: @@ -135,8 +137,10 @@ class FiniteDimensionalEuclideanJordanAlgebraOperator(Map): Linear operator between finite-dimensional Euclidean Jordan algebras represented by the matrix: [39 54 69] - Domain: Euclidean Jordan algebra of degree 3 over Rational Field - Codomain: Euclidean Jordan algebra of degree 1 over Rational Field + Domain: Euclidean Jordan algebra of dimension 3 over + Rational Field + Codomain: Euclidean Jordan algebra of dimension 1 over + Rational Field """ return FiniteDimensionalEuclideanJordanAlgebraOperator( @@ -175,8 +179,10 @@ class FiniteDimensionalEuclideanJordanAlgebraOperator(Map): [1 0 0] [0 1 0] [0 0 1] - Domain: Euclidean Jordan algebra of degree 3 over Rational Field - Codomain: Euclidean Jordan algebra of degree 3 over Rational Field + Domain: Euclidean Jordan algebra of dimension 3 over + Rational Field + Codomain: Euclidean Jordan algebra of dimension 3 over + Rational Field """ return FiniteDimensionalEuclideanJordanAlgebraOperator( @@ -212,16 +218,20 @@ class FiniteDimensionalEuclideanJordanAlgebraOperator(Map): [ 2 4 0] [ 2 9 2] [ 0 4 16] - Domain: Euclidean Jordan algebra of degree 3 over Rational Field - Codomain: Euclidean Jordan algebra of degree 3 over Rational Field + Domain: Euclidean Jordan algebra of dimension 3 over + Rational Field + Codomain: Euclidean Jordan algebra of dimension 3 over + Rational Field sage: x.operator()*(1/2) Linear operator between finite-dimensional Euclidean Jordan algebras represented by the matrix: [ 1 2 0] [ 1 9/2 1] [ 0 2 8] - Domain: Euclidean Jordan algebra of degree 3 over Rational Field - Codomain: Euclidean Jordan algebra of degree 3 over Rational Field + Domain: Euclidean Jordan algebra of dimension 3 over + Rational Field + Codomain: Euclidean Jordan algebra of dimension 3 over + Rational Field """ if other in self.codomain().base_ring(): @@ -256,8 +266,10 @@ class FiniteDimensionalEuclideanJordanAlgebraOperator(Map): [-1 0 0] [ 0 -1 0] [ 0 0 -1] - Domain: Euclidean Jordan algebra of degree 3 over Rational Field - Codomain: Euclidean Jordan algebra of degree 3 over Rational Field + Domain: Euclidean Jordan algebra of dimension 3 over + Rational Field + Codomain: Euclidean Jordan algebra of dimension 3 over + Rational Field """ return FiniteDimensionalEuclideanJordanAlgebraOperator( @@ -289,8 +301,10 @@ class FiniteDimensionalEuclideanJordanAlgebraOperator(Map): [3 0 0] [0 3 0] [0 0 3] - Domain: Euclidean Jordan algebra of degree 3 over Rational Field - Codomain: Euclidean Jordan algebra of degree 3 over Rational Field + Domain: Euclidean Jordan algebra of dimension 3 over + Rational Field + Codomain: Euclidean Jordan algebra of dimension 3 over + Rational Field """ if (n == 1): @@ -330,8 +344,10 @@ class FiniteDimensionalEuclideanJordanAlgebraOperator(Map): algebras represented by the matrix: [1 0] [0 1] - Domain: Euclidean Jordan algebra of degree 2 over Rational Field - Codomain: Euclidean Jordan algebra of degree 2 over Rational Field + Domain: Euclidean Jordan algebra of dimension 2 over + Rational Field + Codomain: Euclidean Jordan algebra of dimension 2 over + Rational Field """ msg = ("Linear operator between finite-dimensional Euclidean Jordan " @@ -364,8 +380,10 @@ class FiniteDimensionalEuclideanJordanAlgebraOperator(Map): [-1 0 0] [ 0 -1 0] [ 0 0 -1] - Domain: Euclidean Jordan algebra of degree 3 over Rational Field - Codomain: Euclidean Jordan algebra of degree 3 over Rational Field + Domain: Euclidean Jordan algebra of dimension 3 over + Rational Field + Codomain: Euclidean Jordan algebra of dimension 3 over + Rational Field """ return (self + (-other))