/rust/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.17.2/src/alias_asref.rs
Line | Count | Source |
1 | | use crate::{ |
2 | | iter::Axes, |
3 | | ArrayBase, |
4 | | Axis, |
5 | | AxisDescription, |
6 | | Dimension, |
7 | | NdIndex, |
8 | | RawArrayView, |
9 | | RawData, |
10 | | RawDataMut, |
11 | | Slice, |
12 | | SliceArg, |
13 | | }; |
14 | | |
15 | | /// Functions coming from RawRef |
16 | | impl<A, S: RawData<Elem = A>, D: Dimension> ArrayBase<S, D> |
17 | | { |
18 | | /// Return a raw pointer to the element at `index`, or return `None` |
19 | | /// if the index is out of bounds. |
20 | | /// |
21 | | /// ``` |
22 | | /// use ndarray::arr2; |
23 | | /// |
24 | | /// let a = arr2(&[[1., 2.], [3., 4.]]); |
25 | | /// |
26 | | /// let v = a.raw_view(); |
27 | | /// let p = a.get_ptr((0, 1)).unwrap(); |
28 | | /// |
29 | | /// assert_eq!(unsafe { *p }, 2.); |
30 | | /// ``` |
31 | 0 | pub fn get_ptr<I>(&self, index: I) -> Option<*const A> |
32 | 0 | where I: NdIndex<D> |
33 | | { |
34 | 0 | self.as_raw_ref().get_ptr(index) |
35 | 0 | } |
36 | | |
37 | | /// Return a raw pointer to the element at `index`, or return `None` |
38 | | /// if the index is out of bounds. |
39 | | /// |
40 | | /// ``` |
41 | | /// use ndarray::arr2; |
42 | | /// |
43 | | /// let mut a = arr2(&[[1., 2.], [3., 4.]]); |
44 | | /// |
45 | | /// let v = a.raw_view_mut(); |
46 | | /// let p = a.get_mut_ptr((0, 1)).unwrap(); |
47 | | /// |
48 | | /// unsafe { |
49 | | /// *p = 5.; |
50 | | /// } |
51 | | /// |
52 | | /// assert_eq!(a.get((0, 1)), Some(&5.)); |
53 | | /// ``` |
54 | 0 | pub fn get_mut_ptr<I>(&mut self, index: I) -> Option<*mut A> |
55 | 0 | where |
56 | 0 | S: RawDataMut<Elem = A>, |
57 | 0 | I: NdIndex<D>, |
58 | | { |
59 | 0 | self.as_raw_ref_mut().get_mut_ptr(index) |
60 | 0 | } |
61 | | |
62 | | /// Return a pointer to the first element in the array. |
63 | | /// |
64 | | /// Raw access to array elements needs to follow the strided indexing |
65 | | /// scheme: an element at multi-index *I* in an array with strides *S* is |
66 | | /// located at offset |
67 | | /// |
68 | | /// *Σ<sub>0 ≤ k < d</sub> I<sub>k</sub> × S<sub>k</sub>* |
69 | | /// |
70 | | /// where *d* is `self.ndim()`. |
71 | | #[inline(always)] |
72 | 0 | pub fn as_ptr(&self) -> *const A |
73 | | { |
74 | 0 | self.as_raw_ref().as_ptr() |
75 | 0 | } Unexecuted instantiation: <ndarray::ArrayBase<ndarray::RawViewRepr<*mut f64>, ndarray::dimension::dim::Dim<[usize; 1]>, f64>>::as_ptr Unexecuted instantiation: <ndarray::ArrayBase<ndarray::RawViewRepr<*mut f32>, ndarray::dimension::dim::Dim<[usize; 1]>, f32>>::as_ptr Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<noisy_float::NoisyFloat<f64, noisy_float::checkers::NumChecker>>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<noisy_float::NoisyFloat<f64, noisy_float::checkers::NumChecker>>>>::as_ptr Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<noisy_float::NoisyFloat<f32, noisy_float::checkers::NumChecker>>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<noisy_float::NoisyFloat<f32, noisy_float::checkers::NumChecker>>>>::as_ptr Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i8>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i8>>>::as_ptr Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u8>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u8>>>::as_ptr Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i32>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i32>>>::as_ptr Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u32>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u32>>>::as_ptr Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i128>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i128>>>::as_ptr Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u128>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u128>>>::as_ptr Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i16>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i16>>>::as_ptr Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u16>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u16>>>::as_ptr Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i64>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i64>>>::as_ptr Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u64>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u64>>>::as_ptr Unexecuted instantiation: <ndarray::ArrayBase<_, _, _>>::as_ptr |
76 | | |
77 | | /// Return a raw view of the array. |
78 | | #[inline] |
79 | 0 | pub fn raw_view(&self) -> RawArrayView<S::Elem, D> |
80 | | { |
81 | 0 | self.as_raw_ref().raw_view() |
82 | 0 | } |
83 | | } |
84 | | |
85 | | /// Functions coming from LayoutRef |
86 | | impl<S: RawData, D: Dimension> ArrayBase<S, D> |
87 | | { |
88 | | /// Slice the array in place without changing the number of dimensions. |
89 | | /// |
90 | | /// In particular, if an axis is sliced with an index, the axis is |
91 | | /// collapsed, as in [`.collapse_axis()`], rather than removed, as in |
92 | | /// [`.slice_move()`] or [`.index_axis_move()`]. |
93 | | /// |
94 | | /// [`.collapse_axis()`]: Self::collapse_axis |
95 | | /// [`.slice_move()`]: Self::slice_move |
96 | | /// [`.index_axis_move()`]: Self::index_axis_move |
97 | | /// |
98 | | /// See [*Slicing*](#slicing) for full documentation. |
99 | | /// See also [`s!`], [`SliceArg`], and [`SliceInfo`](crate::SliceInfo). |
100 | | /// |
101 | | /// **Panics** in the following cases: |
102 | | /// |
103 | | /// - if an index is out of bounds |
104 | | /// - if a step size is zero |
105 | | /// - if [`NewAxis`](`crate::SliceInfoElem::NewAxis`) is in `info`, e.g. if `NewAxis` was |
106 | | /// used in the [`s!`] macro |
107 | | /// - if `D` is `IxDyn` and `info` does not match the number of array axes |
108 | | #[track_caller] |
109 | 0 | pub fn slice_collapse<I>(&mut self, info: I) |
110 | 0 | where I: SliceArg<D> |
111 | | { |
112 | 0 | self.as_layout_ref_mut().slice_collapse(info); |
113 | 0 | } |
114 | | |
115 | | /// Slice the array in place along the specified axis. |
116 | | /// |
117 | | /// **Panics** if an index is out of bounds or step size is zero.<br> |
118 | | /// **Panics** if `axis` is out of bounds. |
119 | | #[track_caller] |
120 | 0 | pub fn slice_axis_inplace(&mut self, axis: Axis, indices: Slice) |
121 | | { |
122 | 0 | self.as_layout_ref_mut().slice_axis_inplace(axis, indices); |
123 | 0 | } Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<noisy_float::NoisyFloat<f64, noisy_float::checkers::NumChecker>>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<noisy_float::NoisyFloat<f64, noisy_float::checkers::NumChecker>>>>::slice_axis_inplace Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<noisy_float::NoisyFloat<f32, noisy_float::checkers::NumChecker>>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<noisy_float::NoisyFloat<f32, noisy_float::checkers::NumChecker>>>>::slice_axis_inplace Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i8>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i8>>>::slice_axis_inplace Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u8>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u8>>>::slice_axis_inplace Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i32>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i32>>>::slice_axis_inplace Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u32>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u32>>>::slice_axis_inplace Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i128>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i128>>>::slice_axis_inplace Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u128>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u128>>>::slice_axis_inplace Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i16>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i16>>>::slice_axis_inplace Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u16>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u16>>>::slice_axis_inplace Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i64>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i64>>>::slice_axis_inplace Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u64>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u64>>>::slice_axis_inplace Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut f64>, ndarray::dimension::dim::Dim<[usize; 1]>, f64>>::slice_axis_inplace Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut f32>, ndarray::dimension::dim::Dim<[usize; 1]>, f32>>::slice_axis_inplace Unexecuted instantiation: <ndarray::ArrayBase<_, _>>::slice_axis_inplace |
124 | | |
125 | | /// Slice the array in place, with a closure specifying the slice for each |
126 | | /// axis. |
127 | | /// |
128 | | /// This is especially useful for code which is generic over the |
129 | | /// dimensionality of the array. |
130 | | /// |
131 | | /// **Panics** if an index is out of bounds or step size is zero. |
132 | | #[track_caller] |
133 | 0 | pub fn slice_each_axis_inplace<F>(&mut self, f: F) |
134 | 0 | where F: FnMut(AxisDescription) -> Slice |
135 | | { |
136 | 0 | self.as_layout_ref_mut().slice_each_axis_inplace(f); |
137 | 0 | } |
138 | | |
139 | | /// Selects `index` along the axis, collapsing the axis into length one. |
140 | | /// |
141 | | /// **Panics** if `axis` or `index` is out of bounds. |
142 | | #[track_caller] |
143 | 0 | pub fn collapse_axis(&mut self, axis: Axis, index: usize) |
144 | | { |
145 | 0 | self.as_layout_ref_mut().collapse_axis(axis, index); |
146 | 0 | } Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&half::binary16::f16>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, half::binary16::f16>>::collapse_axis Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&i8>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, i8>>::collapse_axis Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&f64>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, f64>>::collapse_axis Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&f32>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, f32>>::collapse_axis Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&u8>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, u8>>::collapse_axis Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&i32>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, i32>>::collapse_axis Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&i16>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, i16>>::collapse_axis Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&i64>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, i64>>::collapse_axis Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<noisy_float::NoisyFloat<f64, noisy_float::checkers::NumChecker>>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<noisy_float::NoisyFloat<f64, noisy_float::checkers::NumChecker>>>>::collapse_axis Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<noisy_float::NoisyFloat<f32, noisy_float::checkers::NumChecker>>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<noisy_float::NoisyFloat<f32, noisy_float::checkers::NumChecker>>>>::collapse_axis Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i8>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i8>>>::collapse_axis Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u8>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u8>>>::collapse_axis Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i32>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i32>>>::collapse_axis Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u32>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u32>>>::collapse_axis Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i128>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i128>>>::collapse_axis Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u128>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u128>>>::collapse_axis Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i16>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i16>>>::collapse_axis Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u16>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u16>>>::collapse_axis Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i64>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i64>>>::collapse_axis Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u64>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u64>>>::collapse_axis Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut f64>, ndarray::dimension::dim::Dim<[usize; 1]>, f64>>::collapse_axis Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut f32>, ndarray::dimension::dim::Dim<[usize; 1]>, f32>>::collapse_axis Unexecuted instantiation: <ndarray::ArrayBase<_, _>>::collapse_axis |
147 | | |
148 | | /// Return `true` if the array data is laid out in contiguous “C order” in |
149 | | /// memory (where the last index is the most rapidly varying). |
150 | | /// |
151 | | /// Return `false` otherwise, i.e. the array is possibly not |
152 | | /// contiguous in memory, it has custom strides, etc. |
153 | 0 | pub fn is_standard_layout(&self) -> bool |
154 | | { |
155 | 0 | self.as_layout_ref().is_standard_layout() |
156 | 0 | } Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&half::binary16::f16>, ndarray::dimension::dim::Dim<[usize; 1]>, half::binary16::f16>>::is_standard_layout Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&i8>, ndarray::dimension::dim::Dim<[usize; 1]>, i8>>::is_standard_layout Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&f64>, ndarray::dimension::dim::Dim<[usize; 1]>, f64>>::is_standard_layout Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&f32>, ndarray::dimension::dim::Dim<[usize; 1]>, f32>>::is_standard_layout Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&u8>, ndarray::dimension::dim::Dim<[usize; 1]>, u8>>::is_standard_layout Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&i32>, ndarray::dimension::dim::Dim<[usize; 1]>, i32>>::is_standard_layout Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&i16>, ndarray::dimension::dim::Dim<[usize; 1]>, i16>>::is_standard_layout Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&i64>, ndarray::dimension::dim::Dim<[usize; 1]>, i64>>::is_standard_layout Unexecuted instantiation: <ndarray::ArrayBase<_, _>>::is_standard_layout |
157 | | |
158 | | /// Return true if the array is known to be contiguous. |
159 | 0 | pub(crate) fn is_contiguous(&self) -> bool |
160 | | { |
161 | 0 | self.as_layout_ref().is_contiguous() |
162 | 0 | } |
163 | | |
164 | | /// Return an iterator over the length and stride of each axis. |
165 | 0 | pub fn axes(&self) -> Axes<'_, D> |
166 | | { |
167 | 0 | self.as_layout_ref().axes() |
168 | 0 | } |
169 | | |
170 | | /* |
171 | | /// Return the axis with the least stride (by absolute value) |
172 | | pub fn min_stride_axis(&self) -> Axis { |
173 | | self.dim.min_stride_axis(&self.strides) |
174 | | } |
175 | | */ |
176 | | |
177 | | /// Return the axis with the greatest stride (by absolute value), |
178 | | /// preferring axes with len > 1. |
179 | 0 | pub fn max_stride_axis(&self) -> Axis |
180 | | { |
181 | 0 | self.as_layout_ref().max_stride_axis() |
182 | 0 | } |
183 | | |
184 | | /// Reverse the stride of `axis`. |
185 | | /// |
186 | | /// ***Panics*** if the axis is out of bounds. |
187 | | #[track_caller] |
188 | 0 | pub fn invert_axis(&mut self, axis: Axis) |
189 | | { |
190 | 0 | self.as_layout_ref_mut().invert_axis(axis); |
191 | 0 | } Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut noisy_float::NoisyFloat<f64, noisy_float::checkers::NumChecker>>, ndarray::dimension::dim::Dim<[usize; 1]>, noisy_float::NoisyFloat<f64, noisy_float::checkers::NumChecker>>>::invert_axis Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut noisy_float::NoisyFloat<f32, noisy_float::checkers::NumChecker>>, ndarray::dimension::dim::Dim<[usize; 1]>, noisy_float::NoisyFloat<f32, noisy_float::checkers::NumChecker>>>::invert_axis Unexecuted instantiation: <ndarray::ArrayBase<_, _>>::invert_axis |
192 | | |
193 | | /// Swap axes `ax` and `bx`. |
194 | | /// |
195 | | /// This does not move any data, it just adjusts the array’s dimensions |
196 | | /// and strides. |
197 | | /// |
198 | | /// **Panics** if the axes are out of bounds. |
199 | | /// |
200 | | /// ``` |
201 | | /// use ndarray::arr2; |
202 | | /// |
203 | | /// let mut a = arr2(&[[1., 2., 3.]]); |
204 | | /// a.swap_axes(0, 1); |
205 | | /// assert!( |
206 | | /// a == arr2(&[[1.], [2.], [3.]]) |
207 | | /// ); |
208 | | /// ``` |
209 | | #[track_caller] |
210 | 0 | pub fn swap_axes(&mut self, ax: usize, bx: usize) |
211 | | { |
212 | 0 | self.as_layout_ref_mut().swap_axes(ax, bx); |
213 | 0 | } |
214 | | |
215 | | /// If possible, merge in the axis `take` to `into`. |
216 | | /// |
217 | | /// Returns `true` iff the axes are now merged. |
218 | | /// |
219 | | /// This method merges the axes if movement along the two original axes |
220 | | /// (moving fastest along the `into` axis) can be equivalently represented |
221 | | /// as movement along one (merged) axis. Merging the axes preserves this |
222 | | /// order in the merged axis. If `take` and `into` are the same axis, then |
223 | | /// the axis is "merged" if its length is ≤ 1. |
224 | | /// |
225 | | /// If the return value is `true`, then the following hold: |
226 | | /// |
227 | | /// * The new length of the `into` axis is the product of the original |
228 | | /// lengths of the two axes. |
229 | | /// |
230 | | /// * The new length of the `take` axis is 0 if the product of the original |
231 | | /// lengths of the two axes is 0, and 1 otherwise. |
232 | | /// |
233 | | /// If the return value is `false`, then merging is not possible, and the |
234 | | /// original shape and strides have been preserved. |
235 | | /// |
236 | | /// Note that the ordering constraint means that if it's possible to merge |
237 | | /// `take` into `into`, it's usually not possible to merge `into` into |
238 | | /// `take`, and vice versa. |
239 | | /// |
240 | | /// ``` |
241 | | /// use ndarray::Array3; |
242 | | /// use ndarray::Axis; |
243 | | /// |
244 | | /// let mut a = Array3::<f64>::zeros((2, 3, 4)); |
245 | | /// assert!(a.merge_axes(Axis(1), Axis(2))); |
246 | | /// assert_eq!(a.shape(), &[2, 1, 12]); |
247 | | /// ``` |
248 | | /// |
249 | | /// ***Panics*** if an axis is out of bounds. |
250 | | #[track_caller] |
251 | 0 | pub fn merge_axes(&mut self, take: Axis, into: Axis) -> bool |
252 | | { |
253 | 0 | self.as_layout_ref_mut().merge_axes(take, into) |
254 | 0 | } |
255 | | |
256 | | /// Return the total number of elements in the array. |
257 | 0 | pub fn len(&self) -> usize |
258 | | { |
259 | 0 | self.as_layout_ref().len() |
260 | 0 | } Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&half::binary16::f16>, ndarray::dimension::dim::Dim<[usize; 1]>, half::binary16::f16>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&i8>, ndarray::dimension::dim::Dim<[usize; 1]>, i8>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&f64>, ndarray::dimension::dim::Dim<[usize; 1]>, f64>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&f32>, ndarray::dimension::dim::Dim<[usize; 1]>, f32>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&u8>, ndarray::dimension::dim::Dim<[usize; 1]>, u8>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&i32>, ndarray::dimension::dim::Dim<[usize; 1]>, i32>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&i16>, ndarray::dimension::dim::Dim<[usize; 1]>, i16>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&i64>, ndarray::dimension::dim::Dim<[usize; 1]>, i64>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::data_repr::OwnedRepr<half::binary16::f16>, ndarray::dimension::dim::Dim<[usize; 1]>, half::binary16::f16>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::data_repr::OwnedRepr<i8>, ndarray::dimension::dim::Dim<[usize; 1]>, i8>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::data_repr::OwnedRepr<f64>, ndarray::dimension::dim::Dim<[usize; 1]>, f64>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::data_repr::OwnedRepr<f32>, ndarray::dimension::dim::Dim<[usize; 1]>, f32>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::data_repr::OwnedRepr<u8>, ndarray::dimension::dim::Dim<[usize; 1]>, u8>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::data_repr::OwnedRepr<i32>, ndarray::dimension::dim::Dim<[usize; 1]>, i32>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::data_repr::OwnedRepr<i16>, ndarray::dimension::dim::Dim<[usize; 1]>, i16>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::data_repr::OwnedRepr<i64>, ndarray::dimension::dim::Dim<[usize; 1]>, i64>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<noisy_float::NoisyFloat<f64, noisy_float::checkers::NumChecker>>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<noisy_float::NoisyFloat<f64, noisy_float::checkers::NumChecker>>>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<noisy_float::NoisyFloat<f32, noisy_float::checkers::NumChecker>>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<noisy_float::NoisyFloat<f32, noisy_float::checkers::NumChecker>>>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i8>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i8>>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u8>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u8>>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i32>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i32>>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u32>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u32>>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i128>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i128>>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u128>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u128>>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i16>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i16>>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u16>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u16>>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i64>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i64>>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u64>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u64>>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut f64>, ndarray::dimension::dim::Dim<[usize; 1]>, f64>>::len Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut f32>, ndarray::dimension::dim::Dim<[usize; 1]>, f32>>::len Unexecuted instantiation: <ndarray::ArrayBase<_, _>>::len |
261 | | |
262 | | /// Return the length of `axis`. |
263 | | /// |
264 | | /// The axis should be in the range `Axis(` 0 .. *n* `)` where *n* is the |
265 | | /// number of dimensions (axes) of the array. |
266 | | /// |
267 | | /// ***Panics*** if the axis is out of bounds. |
268 | | #[track_caller] |
269 | 0 | pub fn len_of(&self, axis: Axis) -> usize |
270 | | { |
271 | 0 | self.as_layout_ref().len_of(axis) |
272 | 0 | } Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<noisy_float::NoisyFloat<f64, noisy_float::checkers::NumChecker>>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<noisy_float::NoisyFloat<f64, noisy_float::checkers::NumChecker>>>>::len_of Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<noisy_float::NoisyFloat<f32, noisy_float::checkers::NumChecker>>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<noisy_float::NoisyFloat<f32, noisy_float::checkers::NumChecker>>>>::len_of Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i8>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i8>>>::len_of Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u8>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u8>>>::len_of Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i32>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i32>>>::len_of Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u32>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u32>>>::len_of Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i128>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i128>>>::len_of Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u128>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u128>>>::len_of Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i16>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i16>>>::len_of Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u16>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u16>>>::len_of Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i64>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i64>>>::len_of Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u64>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u64>>>::len_of Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut f64>, ndarray::dimension::dim::Dim<[usize; 1]>, f64>>::len_of Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut f32>, ndarray::dimension::dim::Dim<[usize; 1]>, f32>>::len_of Unexecuted instantiation: <ndarray::ArrayBase<_, _>>::len_of |
273 | | |
274 | | /// Return whether the array has any elements |
275 | 0 | pub fn is_empty(&self) -> bool |
276 | | { |
277 | 0 | self.as_layout_ref().is_empty() |
278 | 0 | } Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&half::binary16::f16>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, half::binary16::f16>>::is_empty Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&i8>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, i8>>::is_empty Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&f64>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, f64>>::is_empty Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&f32>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, f32>>::is_empty Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&u8>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, u8>>::is_empty Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&i32>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, i32>>::is_empty Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&i16>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, i16>>::is_empty Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&i64>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, i64>>::is_empty Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<noisy_float::NoisyFloat<f64, noisy_float::checkers::NumChecker>>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<noisy_float::NoisyFloat<f64, noisy_float::checkers::NumChecker>>>>::is_empty Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<noisy_float::NoisyFloat<f32, noisy_float::checkers::NumChecker>>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<noisy_float::NoisyFloat<f32, noisy_float::checkers::NumChecker>>>>::is_empty Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i8>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i8>>>::is_empty Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u8>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u8>>>::is_empty Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i32>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i32>>>::is_empty Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u32>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u32>>>::is_empty Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i128>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i128>>>::is_empty Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u128>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u128>>>::is_empty Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i16>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i16>>>::is_empty Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u16>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u16>>>::is_empty Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i64>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i64>>>::is_empty Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u64>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u64>>>::is_empty Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut f64>, ndarray::dimension::dim::Dim<[usize; 1]>, f64>>::is_empty Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut f32>, ndarray::dimension::dim::Dim<[usize; 1]>, f32>>::is_empty Unexecuted instantiation: <ndarray::ArrayBase<_, _>>::is_empty |
279 | | |
280 | | /// Return the number of dimensions (axes) in the array |
281 | 0 | pub fn ndim(&self) -> usize |
282 | | { |
283 | 0 | self.as_layout_ref().ndim() |
284 | 0 | } Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&half::binary16::f16>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, half::binary16::f16>>::ndim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&i8>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, i8>>::ndim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&f64>, ndarray::dimension::dim::Dim<[usize; 1]>, f64>>::ndim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&f64>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, f64>>::ndim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&f32>, ndarray::dimension::dim::Dim<[usize; 1]>, f32>>::ndim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&f32>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, f32>>::ndim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&u8>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, u8>>::ndim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&i32>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, i32>>::ndim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&i16>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, i16>>::ndim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&i64>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, i64>>::ndim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<noisy_float::NoisyFloat<f64, noisy_float::checkers::NumChecker>>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<noisy_float::NoisyFloat<f64, noisy_float::checkers::NumChecker>>>>::ndim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<noisy_float::NoisyFloat<f32, noisy_float::checkers::NumChecker>>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<noisy_float::NoisyFloat<f32, noisy_float::checkers::NumChecker>>>>::ndim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i8>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i8>>>::ndim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u8>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u8>>>::ndim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i32>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i32>>>::ndim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u32>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u32>>>::ndim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i128>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i128>>>::ndim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u128>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u128>>>::ndim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i16>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i16>>>::ndim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u16>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u16>>>::ndim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i64>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i64>>>::ndim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u64>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u64>>>::ndim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut f64>, ndarray::dimension::dim::Dim<[usize; 1]>, f64>>::ndim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut f32>, ndarray::dimension::dim::Dim<[usize; 1]>, f32>>::ndim Unexecuted instantiation: <ndarray::ArrayBase<_, _>>::ndim |
285 | | |
286 | | /// Return the shape of the array in its “pattern” form, |
287 | | /// an integer in the one-dimensional case, tuple in the n-dimensional cases |
288 | | /// and so on. |
289 | 0 | pub fn dim(&self) -> D::Pattern |
290 | | { |
291 | 0 | self.as_layout_ref().dim() |
292 | 0 | } Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<noisy_float::NoisyFloat<f64, noisy_float::checkers::NumChecker>>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<noisy_float::NoisyFloat<f64, noisy_float::checkers::NumChecker>>>>::dim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<noisy_float::NoisyFloat<f32, noisy_float::checkers::NumChecker>>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<noisy_float::NoisyFloat<f32, noisy_float::checkers::NumChecker>>>>::dim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i8>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i8>>>::dim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u8>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u8>>>::dim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i32>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i32>>>::dim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u32>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u32>>>::dim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i128>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i128>>>::dim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u128>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u128>>>::dim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i16>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i16>>>::dim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u16>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u16>>>::dim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<i64>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<i64>>>::dim Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut core::option::Option<u64>>, ndarray::dimension::dim::Dim<[usize; 1]>, core::option::Option<u64>>>::dim Unexecuted instantiation: <ndarray::ArrayBase<_, _>>::dim |
293 | | |
294 | | /// Return the shape of the array as it's stored in the array. |
295 | | /// |
296 | | /// This is primarily useful for passing to other `ArrayBase` |
297 | | /// functions, such as when creating another array of the same |
298 | | /// shape and dimensionality. |
299 | | /// |
300 | | /// ``` |
301 | | /// use ndarray::Array; |
302 | | /// |
303 | | /// let a = Array::from_elem((2, 3), 5.); |
304 | | /// |
305 | | /// // Create an array of zeros that's the same shape and dimensionality as `a`. |
306 | | /// let b = Array::<f64, _>::zeros(a.raw_dim()); |
307 | | /// ``` |
308 | 0 | pub fn raw_dim(&self) -> D |
309 | | { |
310 | 0 | self.as_layout_ref().raw_dim() |
311 | 0 | } |
312 | | |
313 | | /// Return the shape of the array as a slice. |
314 | | /// |
315 | | /// Note that you probably don't want to use this to create an array of the |
316 | | /// same shape as another array because creating an array with e.g. |
317 | | /// [`Array::zeros()`](ArrayBase::zeros) using a shape of type `&[usize]` |
318 | | /// results in a dynamic-dimensional array. If you want to create an array |
319 | | /// that has the same shape and dimensionality as another array, use |
320 | | /// [`.raw_dim()`](ArrayBase::raw_dim) instead: |
321 | | /// |
322 | | /// ```rust |
323 | | /// use ndarray::{Array, Array2}; |
324 | | /// |
325 | | /// let a = Array2::<i32>::zeros((3, 4)); |
326 | | /// let shape = a.shape(); |
327 | | /// assert_eq!(shape, &[3, 4]); |
328 | | /// |
329 | | /// // Since `a.shape()` returned `&[usize]`, we get an `ArrayD` instance: |
330 | | /// let b = Array::zeros(shape); |
331 | | /// assert_eq!(a.clone().into_dyn(), b); |
332 | | /// |
333 | | /// // To get the same dimension type, use `.raw_dim()` instead: |
334 | | /// let c = Array::zeros(a.raw_dim()); |
335 | | /// assert_eq!(a, c); |
336 | | /// ``` |
337 | 0 | pub fn shape(&self) -> &[usize] |
338 | | { |
339 | 0 | self.as_layout_ref().shape() |
340 | 0 | } Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&half::binary16::f16>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, half::binary16::f16>>::shape Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&i8>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, i8>>::shape Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&f64>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, f64>>::shape Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&f32>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, f32>>::shape Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&u8>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, u8>>::shape Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&i32>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, i32>>::shape Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&i16>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, i16>>::shape Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&i64>, ndarray::dimension::dim::Dim<ndarray::dimension::dynindeximpl::IxDynImpl>, i64>>::shape Unexecuted instantiation: <ndarray::ArrayBase<_, _>>::shape |
341 | | |
342 | | /// Return the strides of the array as a slice. |
343 | 0 | pub fn strides(&self) -> &[isize] |
344 | | { |
345 | 0 | self.as_layout_ref().strides() |
346 | 0 | } |
347 | | |
348 | | /// Return the stride of `axis`. |
349 | | /// |
350 | | /// The axis should be in the range `Axis(` 0 .. *n* `)` where *n* is the |
351 | | /// number of dimensions (axes) of the array. |
352 | | /// |
353 | | /// ***Panics*** if the axis is out of bounds. |
354 | | #[track_caller] |
355 | 0 | pub fn stride_of(&self, axis: Axis) -> isize |
356 | | { |
357 | 0 | self.as_layout_ref().stride_of(axis) |
358 | 0 | } Unexecuted instantiation: <ndarray::ArrayBase<ndarray::RawViewRepr<*mut f64>, ndarray::dimension::dim::Dim<[usize; 1]>, f64>>::stride_of Unexecuted instantiation: <ndarray::ArrayBase<ndarray::RawViewRepr<*mut f32>, ndarray::dimension::dim::Dim<[usize; 1]>, f32>>::stride_of Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut f64>, ndarray::dimension::dim::Dim<[usize; 1]>, f64>>::stride_of Unexecuted instantiation: <ndarray::ArrayBase<ndarray::ViewRepr<&mut f32>, ndarray::dimension::dim::Dim<[usize; 1]>, f32>>::stride_of Unexecuted instantiation: <ndarray::ArrayBase<_, _>>::stride_of |
359 | | } |