pub fn transpose_data<A, S>(
    a: &mut ArrayBase<S, Ix2>
) -> Result<&mut ArrayBase<S, Ix2>>where
    A: Copy,
    S: DataOwned<Elem = A> + DataMut,