sklears_utils/array_utils/
memory.rs1use scirs2_core::ndarray::Array2;
4
5pub fn is_contiguous<T>(array: &Array2<T>) -> bool {
7 array.is_standard_layout()
8}
9
10pub fn make_contiguous<T: Clone>(array: &Array2<T>) -> Array2<T> {
12 if array.is_standard_layout() {
13 array.clone()
14 } else {
15 array.to_owned()
16 }
17}
18
19pub fn efficient_copy<T: Clone>(array: &Array2<T>) -> Array2<T> {
21 if array.is_standard_layout() {
22 array.clone()
24 } else {
25 array.to_owned()
27 }
28}
29
30pub fn get_strides<T>(array: &Array2<T>) -> Vec<isize> {
32 array.strides().to_vec()
33}
34
35pub fn compatible_layout<T>(a: &Array2<T>, b: &Array2<T>) -> bool {
37 a.raw_dim() == b.raw_dim() && a.strides() == b.strides()
38}