use scirs2_core::ndarray::Array2;
pub fn is_contiguous<T>(array: &Array2<T>) -> bool {
array.is_standard_layout()
}
pub fn make_contiguous<T: Clone>(array: &Array2<T>) -> Array2<T> {
if array.is_standard_layout() {
array.clone()
} else {
array.to_owned()
}
}
pub fn efficient_copy<T: Clone>(array: &Array2<T>) -> Array2<T> {
if array.is_standard_layout() {
array.clone()
} else {
array.to_owned()
}
}
pub fn get_strides<T>(array: &Array2<T>) -> Vec<isize> {
array.strides().to_vec()
}
pub fn compatible_layout<T>(a: &Array2<T>, b: &Array2<T>) -> bool {
a.raw_dim() == b.raw_dim() && a.strides() == b.strides()
}