diff --git a/src/data/mod.rs b/src/data/mod.rs index 862365225..3ba58360f 100644 --- a/src/data/mod.rs +++ b/src/data/mod.rs @@ -513,11 +513,14 @@ where temp.into() } -/// Reorder the array in specified order +/// Reorder the array according to the new specified axes /// -/// The default order of axes in ArrayFire is axis with smallest distance -/// between adjacent elements towards an axis with highest distance between -/// adjacent elements. +/// Exchanges data within an array such that the requested change in axes is +/// satisfied. The linear ordering of data within the array is preserved. +/// +/// The default order of axes in ArrayFire is [0 1 2 3] i.e. axis with smallest +/// distance between adjacent elements followed by next smallest distance axis and +/// so on. See [examples](#examples) to have a basic idea of how data is re-ordered. /// ///# Parameters /// @@ -537,7 +540,29 @@ where /// let a = randu::(Dim4::new(&[5, 3, 1, 1])); /// let b = reorder_v2(&a, 1, 0, None); /// print(&a); +/// +/// // [5 3 1 1] +/// // 0.8104 0.2990 0.3014 +/// // 0.6913 0.2802 0.6938 +/// // 0.7821 0.1480 0.3513 +/// // 0.3054 0.1330 0.7176 +/// // 0.1673 0.4696 0.1181 +/// /// print(&b); +/// // [3 5 1 1] +/// // 0.8104 0.6913 0.7821 0.3054 0.1673 +/// // 0.2990 0.2802 0.1480 0.1330 0.4696 +/// // 0.3014 0.6938 0.3513 0.7176 0.1181 +/// +/// let c = reorder_v2(&a, 2, 0, Some(vec![1])); +/// print(&c); +/// +/// // [1 5 3 1] +/// // 0.8104 0.6913 0.7821 0.3054 0.1673 +/// // +/// // 0.2990 0.2802 0.1480 0.1330 0.4696 +/// // +/// // 0.3014 0.6938 0.3513 0.7176 0.1181 /// ``` pub fn reorder_v2( input: &Array, diff --git a/tests/data.rs b/tests/data.rs index 994b30425..41b7d3ab9 100644 --- a/tests/data.rs +++ b/tests/data.rs @@ -1,13 +1,13 @@ use ::arrayfire::*; -use float_cmp::approx_eq; +#[allow(unused_variables)] #[test] fn check_reorder_api() { let dims = Dim4::new(&[4, 5, 2, 3]); - let A = randu::(dims); + let a = randu::(dims); - let transposedA = reorder_v2(&A, 1, 0, None); - let swap_0_2 = reorder_v2(&A, 2, 1, Some(vec![0])); - let swap_1_2 = reorder_v2(&A, 0, 2, Some(vec![1])); - let swap_0_3 = reorder_v2(&A, 3, 1, Some(vec![2, 0])); + let transposed = reorder_v2(&a, 1, 0, None); + let swap_0_2 = reorder_v2(&a, 2, 1, Some(vec![0])); + let swap_1_2 = reorder_v2(&a, 0, 2, Some(vec![1])); + let swap_0_3 = reorder_v2(&a, 3, 1, Some(vec![2, 0])); }