The ColSlice implementation for fixed size matrices returns a DVec,
while this is probably not optimal performance-wise, the dynamic nature
of the result makes this necessary. Using a data type presenting the
ImmutableVector trait would solve this, but it looks like a non-trivial
change.
This allows the implementation of householder reflection without relying
on knowledge of DVec. This required a new member in the Indexable trait:
the shape() function, which returns the maximum index available.
Everything changed, hopefully for the best.
* everything is accessible from the `na` module. It re-export
everything and provides free functions (i-e: na::dot(a, b) instead of
a.dot(b)) for most functionalities.
* matrix/vector adaptors (Rotmat, Transform) are replaced by plain
types: Rot{2, 3, 4} for rotation matrices and Iso{2, 3, 4} for
isometries (rotation + translation). This old adaptors system was to
hard to understand and to document.
* each file related to data structures moved to the `structs` folder.
This makes the doc a lot more readable and make people prefer the
`na` module instead of individual small modules.
* Because `na` exists now, the modules `structs::vec` and
`structs::mat` dont re-export anything now.
As a side effect, this makes the documentation more readable.