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.
# 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
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,
# 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):