]> gitweb.michael.orlitzky.com - sage.d.git/commitdiff
eja: don't compute an unused vector space for the element subalgebra.
authorMichael Orlitzky <michael@orlitzky.com>
Sat, 21 Nov 2020 02:31:54 +0000 (21:31 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Sat, 21 Nov 2020 02:31:54 +0000 (21:31 -0500)
mjo/eja/TODO
mjo/eja/eja_element_subalgebra.py

index e8a2a8d4fc8988b1ad6f744a69daba9cf0582397..76b9eaf1dcf19f3c8385bd1f0486128b005ca3f2 100644 (file)
    DirectSumEJA.
 
 6. Switch to QQ in *all* algebras for _charpoly_coefficients().
+
+7. Pass already_echelonized (default: False) and echelon_basis
+   (default: None) into the subalgebra constructor. The value of
+   already_echelonized can be passed to V.span_of_basis() to save
+   some time, and usinf e.g. FreeModule_submodule_with_basis_field
+   we may somehow be able to pass the echelon basis straight in to
+   save time.
index 73e1cbd9ab34ce1078c6ebaeaade3cc87d3d9448..a26381b12dbe649d5dad9bc0cd056adbb1606f62 100644 (file)
@@ -28,10 +28,6 @@ class FiniteDimensionalEuclideanJordanElementSubalgebra(FiniteDimensionalEuclide
 
             # Pick those out of the list of all powers.
             superalgebra_basis = tuple(map(powers.__getitem__, ind_rows))
-
-            # If our superalgebra is a subalgebra of something else, then
-            # these vectors won't have the right coordinates for
-            # V.span_of_basis() unless we use V.from_vector() on them.
             basis_vectors = map(power_vectors.__getitem__, ind_rows)
         else:
             # If we're going to orthonormalize the basis anyway, we
@@ -47,8 +43,6 @@ class FiniteDimensionalEuclideanJordanElementSubalgebra(FiniteDimensionalEuclide
             superalgebra_basis = [ self._superalgebra.from_vector(b)
                                    for b in basis_vectors ]
 
-        W = V.span_of_basis( V.from_vector(v) for v in basis_vectors )
-
         fdeja = super(FiniteDimensionalEuclideanJordanElementSubalgebra, self)
         fdeja.__init__(self._superalgebra,
                        superalgebra_basis,
@@ -61,7 +55,7 @@ class FiniteDimensionalEuclideanJordanElementSubalgebra(FiniteDimensionalEuclide
         # polynomial has the same degree as the space's dimension
         # (remember how we constructed the space?), so that must be
         # its rank too.
-        self.rank.set_cache(W.dimension())
+        self.rank.set_cache(self.dimension())
 
 
     def one(self):