Improve multi index type in global basis
- We now separate the stored and exported multi index type
MultiIndexStorage
andMultiIndex
. -
MultiIndexStorage
will always have dynamic size and may need a larger capacity compared toMultiIndex
s size. -
MultiIndex
has static size, if it is clear that the multi indices generated by thePreBasis
have a static length. - If the size of multi indices is guaranteed to be one, then the
MultiIndex
can be cast to the plain index to avoid using[0]
in simple cases. - The implementation is based on the new
StaticMultiIndex
andOverflowArray
classes. -
OverflowArraw
mostly behaves likeDune::ReservedVector
but derives from a statically sized array base class. This allows to have temporary dynamic size but cast to the result to the statically sized base class. -
StaticMultiIndex
represents a statically sized multi index. It essentially addsoperator<<
tostd::array
for writing to a stream and a cast to the first entry forsize()==0
. -
FlatMultiIndex<T>
is now adeprecatedalias forStaticMultiIndex<T,1>
and no longer used.