Design of the VectorSpace
Some notes:
Having a common base class is at odds with inheriting from
IndexableContainerBase
. We’d have to templateVectorSpace
on the derived class to haveIndexableContainerBase
implement it.CRTP for
VectorSpace
is fine if we never need aVectorSpace
object. Would we want a property type like:BraKet<VectorSpace, Operator, VectorSpace>
vs sayBraKet<AOs, Operator, AOs>
? The former is useful for avoiding a combinatorial explosion in property types, e.g.BraKet<MOs, Operator, AOs>
andBraKet<AOs, Operator, MOs>
.