From: Michael Orlitzky Date: Sun, 10 Nov 2019 13:52:44 +0000 (-0500) Subject: eja: remove broken one() implementation in subalgebras. X-Git-Url: http://gitweb.michael.orlitzky.com/?p=sage.d.git;a=commitdiff_plain;h=d845ddf0d35fecee2b82ec8c9f973aa672c8f1c5 eja: remove broken one() implementation in subalgebras. The one() implementetion for the algebra generated by an element is not, in general, correct for a subalgebra. Subalgebras can have different identities than superalgebras -- take the Peirce decomposition, for example. --- diff --git a/mjo/eja/eja_subalgebra.py b/mjo/eja/eja_subalgebra.py index b07f7e2..1030348 100644 --- a/mjo/eja/eja_subalgebra.py +++ b/mjo/eja/eja_subalgebra.py @@ -193,84 +193,6 @@ class FiniteDimensionalEuclideanJordanSubalgebra(FiniteDimensionalEuclideanJorda return self.from_vector(coords) - def one(self): - """ - Return the multiplicative identity element of this algebra. - - The superclass method computes the identity element, which is - beyond overkill in this case: the superalgebra identity - restricted to this algebra is its identity. Note that we can't - count on the first basis element being the identity -- it migth - have been scaled if we orthonormalized the basis. - - SETUP:: - - sage: from mjo.eja.eja_algebra import (RealCartesianProductEJA, - ....: random_eja) - - EXAMPLES:: - - sage: J = RealCartesianProductEJA(5) - sage: J.one() - e0 + e1 + e2 + e3 + e4 - sage: x = sum(J.gens()) - sage: A = x.subalgebra_generated_by() - sage: A.one() - f0 - sage: A.one().superalgebra_element() - e0 + e1 + e2 + e3 + e4 - - TESTS: - - The identity element acts like the identity over the rationals:: - - sage: set_random_seed() - sage: x = random_eja().random_element() - sage: A = x.subalgebra_generated_by() - sage: x = A.random_element() - sage: A.one()*x == x and x*A.one() == x - True - - The identity element acts like the identity over the algebraic - reals with an orthonormal basis:: - - sage: set_random_seed() - sage: x = random_eja(AA).random_element() - sage: A = x.subalgebra_generated_by(orthonormalize_basis=True) - sage: x = A.random_element() - sage: A.one()*x == x and x*A.one() == x - True - - The matrix of the unit element's operator is the identity over - the rationals:: - - sage: set_random_seed() - sage: x = random_eja().random_element() - sage: A = x.subalgebra_generated_by() - sage: actual = A.one().operator().matrix() - sage: expected = matrix.identity(A.base_ring(), A.dimension()) - sage: actual == expected - True - - The matrix of the unit element's operator is the identity over - the algebraic reals with an orthonormal basis:: - - sage: set_random_seed() - sage: x = random_eja(AA).random_element() - sage: A = x.subalgebra_generated_by(orthonormalize_basis=True) - sage: actual = A.one().operator().matrix() - sage: expected = matrix.identity(A.base_ring(), A.dimension()) - sage: actual == expected - True - - """ - if self.dimension() == 0: - return self.zero() - else: - sa_one = self.superalgebra().one().to_vector() - sa_coords = self.vector_space().coordinate_vector(sa_one) - return self.from_vector(sa_coords) - def natural_basis_space(self): """