]> gitweb.michael.orlitzky.com - sage.d.git/commitdiff
eja: don't pointlessly orthonormalize in subalgebra_idempotent().
authorMichael Orlitzky <michael@orlitzky.com>
Sat, 4 Feb 2023 03:37:34 +0000 (22:37 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Sat, 4 Feb 2023 03:37:34 +0000 (22:37 -0500)
mjo/eja/eja_element.py

index ef6370495333791ca30070fd658e7502ef982433..235047a153f0594bf450987ae2988a5873d92f36 100644 (file)
@@ -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()