# 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.
+ # already came from an EJA.
#
- # TODO: create a separate constructor that is capable of
- # orthonormalizing and is only used by the cartesian_product()
- # thingy.
+ # 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))