Views and wrappers
Views (zero-copy)
A view is an AbstractMatrix that remaps indices onto an underlying matrix
without copying. Writing through a view mutates the underlying matrix. Use
.clone() (or a static op) if you need an independent copy.
Created from instance methods:
The view classes themselves are exported for direct construction:
Wrappers
Wrap existing arrays as a matrix without copying.
wrap throws if the argument is not an array. WrapperMatrix1D throws if the
data length is not divisible by rows. Mutating a wrapper writes back into the
wrapped array.