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. Likewise the axioms are guaranteed
+ # to be satisfied. We can't orthonormalize by default because
+ # there's no way to pass "orthonormalize=False" to
+ # cartesian_product(...) when the base ring is QQ and
+ # orthonormalizing would give us irrational entries.
+ #
+ # TODO: create a separate constructor that is capable of
+ # orthonormalizing and is only used by the cartesian_product()
+ # thingy.
FiniteDimensionalEJA.__init__(self,
basis,
jordan_product,