y = self.from_vector(_mat2vec(y_mat))
return self.cartesian_inner_product(x,y)
+ # Use whatever category the superclass came up with. Usually
+ # some join of the EJA and Cartesian product
+ # categories. There's no need to check the field since it
+ # already came from an EJA.
+ #
+ # If you want the basis to be orthonormalized, orthonormalize
+ # the factors.
FiniteDimensionalEJA.__init__(self,
basis,
jordan_product,
check_field=False,
check_axioms=False,
category=self.category())
- # TODO:
- #
- # Initialize the FDEJA class, too. Does this override the
- # initialization that we did for the
- # CombinatorialFreeModule_CartesianProduct class? If not, we
- # will probably have to duplicate some of the work (i.e. one
- # of the constructors). Since the CartesianProduct one is
- # smaller, that makes the most sense to copy/paste if it comes
- # down to that.
- #
self.rank.set_cache(sum(J.rank() for J in modules))