From ec4c9a49813109790d461da06d4f64219fa4bf8c Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Fri, 3 Feb 2023 22:37:34 -0500 Subject: [PATCH] eja: don't pointlessly orthonormalize in subalgebra_idempotent(). --- mjo/eja/eja_element.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/mjo/eja/eja_element.py b/mjo/eja/eja_element.py index ef63704..235047a 100644 --- a/mjo/eja/eja_element.py +++ b/mjo/eja/eja_element.py @@ -1455,7 +1455,10 @@ class FiniteDimensionalEJAElement(IndexedFreeModuleElement): if self.is_nilpotent(): raise ValueError("this only works with non-nilpotent elements!") - J = self.subalgebra_generated_by() + # The subalgebra is transient (we return an element of the + # superalgebra, i.e. this algebra) so why bother + # orthonormalizing? + J = self.subalgebra_generated_by(orthonormalize=False) u = J(self) # The image of the matrix of left-u^m-multiplication @@ -1476,14 +1479,12 @@ class FiniteDimensionalEJAElement(IndexedFreeModuleElement): # subspace... or do we? Can't we just solve, knowing that # A(c) = u^(s+1) should have a solution in the big space, # too? - # - # Beware, solve_right() means that we're using COLUMN vectors. - # Our FiniteDimensionalAlgebraElement superclass uses rows. u_next = u**(s+1) A = u_next.operator().matrix() c = J.from_vector(A.solve_right(u_next.to_vector())) - # Now c is the idempotent we want, but it still lives in the subalgebra. + # Now c is the idempotent we want, but it still lives in + # the subalgebra. return c.superalgebra_element() -- 2.44.2