- # powers. The redundant ones will get zero'd out.
- superalgebra_basis = gram_schmidt(powers)
- basis_vectors = [ b.to_vector() for b in superalgebra_basis ]
+ # powers. The redundant ones will get zero'd out. If this
+ # looks like a roundabout way to orthonormalize, it is.
+ # But converting everything from algebra elements to vectors
+ # to matrices and then back again turns out to be about
+ # as fast as reimplementing our own Gram-Schmidt that
+ # works in an EJA.
+ G,_ = P.gram_schmidt(orthonormal=True)
+ basis_vectors = [ g for g in G.rows() if not g.is_zero() ]
+ superalgebra_basis = [ self._superalgebra.from_vector(b)
+ for b in basis_vectors ]