Thanks to visit codestin.com
Credit goes to docs.rs

ndarray/
aliases.rs

1//! Type aliases for common array sizes
2//!
3
4use crate::dimension::Dim;
5use crate::{ArcArray, Array, ArrayRef, ArrayView, ArrayViewMut, Ix, IxDynImpl, LayoutRef};
6
7/// Create a zero-dimensional index
8#[allow(non_snake_case)]
9#[inline(always)]
10pub const fn Ix0() -> Ix0
11{
12    Dim::new([])
13}
14/// Create a one-dimensional index
15#[allow(non_snake_case)]
16#[inline(always)]
17pub const fn Ix1(i0: Ix) -> Ix1
18{
19    Dim::new([i0])
20}
21/// Create a two-dimensional index
22#[allow(non_snake_case)]
23#[inline(always)]
24pub const fn Ix2(i0: Ix, i1: Ix) -> Ix2
25{
26    Dim::new([i0, i1])
27}
28/// Create a three-dimensional index
29#[allow(non_snake_case)]
30#[inline(always)]
31pub const fn Ix3(i0: Ix, i1: Ix, i2: Ix) -> Ix3
32{
33    Dim::new([i0, i1, i2])
34}
35/// Create a four-dimensional index
36#[allow(non_snake_case)]
37#[inline(always)]
38pub const fn Ix4(i0: Ix, i1: Ix, i2: Ix, i3: Ix) -> Ix4
39{
40    Dim::new([i0, i1, i2, i3])
41}
42/// Create a five-dimensional index
43#[allow(non_snake_case)]
44#[inline(always)]
45pub const fn Ix5(i0: Ix, i1: Ix, i2: Ix, i3: Ix, i4: Ix) -> Ix5
46{
47    Dim::new([i0, i1, i2, i3, i4])
48}
49/// Create a six-dimensional index
50#[allow(non_snake_case)]
51#[inline(always)]
52pub const fn Ix6(i0: Ix, i1: Ix, i2: Ix, i3: Ix, i4: Ix, i5: Ix) -> Ix6
53{
54    Dim::new([i0, i1, i2, i3, i4, i5])
55}
56
57/// Create a dynamic-dimensional index
58#[allow(non_snake_case)]
59#[inline(always)]
60pub fn IxDyn(ix: &[Ix]) -> IxDyn
61{
62    Dim(ix)
63}
64
65/// zero-dimensionial
66pub type Ix0 = Dim<[Ix; 0]>;
67/// one-dimensional
68pub type Ix1 = Dim<[Ix; 1]>;
69/// two-dimensional
70pub type Ix2 = Dim<[Ix; 2]>;
71/// three-dimensional
72pub type Ix3 = Dim<[Ix; 3]>;
73/// four-dimensional
74pub type Ix4 = Dim<[Ix; 4]>;
75/// five-dimensional
76pub type Ix5 = Dim<[Ix; 5]>;
77/// six-dimensional
78pub type Ix6 = Dim<[Ix; 6]>;
79/// dynamic-dimensional
80///
81/// You can use the `IxDyn` function to create a dimension for an array with
82/// dynamic number of dimensions.  (`Vec<usize>` and `&[usize]` also implement
83/// `IntoDimension` to produce `IxDyn`).
84///
85/// ```
86/// use ndarray::ArrayD;
87/// use ndarray::IxDyn;
88///
89/// // Create a 5 × 6 × 3 × 4 array using the dynamic dimension type
90/// let mut a = ArrayD::<f64>::zeros(IxDyn(&[5, 6, 3, 4]));
91/// // Create a 1 × 3 × 4 array using the dynamic dimension type
92/// let mut b = ArrayD::<f64>::zeros(IxDyn(&[1, 3, 4]));
93///
94/// // We can use broadcasting to add arrays of compatible shapes together:
95/// a += &b;
96///
97/// // We can index into a, b using fixed size arrays:
98/// a[[0, 0, 0, 0]] = 0.;
99/// b[[0, 2, 3]] = a[[0, 0, 2, 3]];
100/// // Note: indexing will panic at runtime if the number of indices given does
101/// // not match the array.
102///
103/// // We can keep them in the same vector because both the arrays have
104/// // the same type `Array<f64, IxDyn>` a.k.a `ArrayD<f64>`:
105/// let arrays = vec![a, b];
106/// ```
107pub type IxDyn = Dim<IxDynImpl>;
108
109/// zero-dimensional array
110pub type Array0<A> = Array<A, Ix0>;
111/// one-dimensional array
112pub type Array1<A> = Array<A, Ix1>;
113/// two-dimensional array
114pub type Array2<A> = Array<A, Ix2>;
115/// three-dimensional array
116pub type Array3<A> = Array<A, Ix3>;
117/// four-dimensional array
118pub type Array4<A> = Array<A, Ix4>;
119/// five-dimensional array
120pub type Array5<A> = Array<A, Ix5>;
121/// six-dimensional array
122pub type Array6<A> = Array<A, Ix6>;
123/// dynamic-dimensional array
124pub type ArrayD<A> = Array<A, IxDyn>;
125
126/// zero-dimensional array reference
127pub type ArrayRef0<A> = ArrayRef<A, Ix0>;
128/// one-dimensional array reference
129pub type ArrayRef1<A> = ArrayRef<A, Ix1>;
130/// two-dimensional array reference
131pub type ArrayRef2<A> = ArrayRef<A, Ix2>;
132/// three-dimensional array reference
133pub type ArrayRef3<A> = ArrayRef<A, Ix3>;
134/// four-dimensional array reference
135pub type ArrayRef4<A> = ArrayRef<A, Ix4>;
136/// five-dimensional array reference
137pub type ArrayRef5<A> = ArrayRef<A, Ix5>;
138/// six-dimensional array reference
139pub type ArrayRef6<A> = ArrayRef<A, Ix6>;
140/// dynamic-dimensional array reference
141pub type ArrayRefD<A> = ArrayRef<A, IxDyn>;
142
143/// zero-dimensional layout reference
144pub type LayoutRef0<A> = LayoutRef<A, Ix0>;
145/// one-dimensional layout reference
146pub type LayoutRef1<A> = LayoutRef<A, Ix1>;
147/// two-dimensional layout reference
148pub type LayoutRef2<A> = LayoutRef<A, Ix2>;
149/// three-dimensional layout reference
150pub type LayoutRef3<A> = LayoutRef<A, Ix3>;
151/// four-dimensional layout reference
152pub type LayoutRef4<A> = LayoutRef<A, Ix4>;
153/// five-dimensional layout reference
154pub type LayoutRef5<A> = LayoutRef<A, Ix5>;
155/// six-dimensional layout reference
156pub type LayoutRef6<A> = LayoutRef<A, Ix6>;
157/// dynamic-dimensional layout reference
158pub type LayoutRefD<A> = LayoutRef<A, IxDyn>;
159
160/// zero-dimensional array view
161pub type ArrayView0<'a, A> = ArrayView<'a, A, Ix0>;
162/// one-dimensional array view
163pub type ArrayView1<'a, A> = ArrayView<'a, A, Ix1>;
164/// two-dimensional array view
165pub type ArrayView2<'a, A> = ArrayView<'a, A, Ix2>;
166/// three-dimensional array view
167pub type ArrayView3<'a, A> = ArrayView<'a, A, Ix3>;
168/// four-dimensional array view
169pub type ArrayView4<'a, A> = ArrayView<'a, A, Ix4>;
170/// five-dimensional array view
171pub type ArrayView5<'a, A> = ArrayView<'a, A, Ix5>;
172/// six-dimensional array view
173pub type ArrayView6<'a, A> = ArrayView<'a, A, Ix6>;
174/// dynamic-dimensional array view
175pub type ArrayViewD<'a, A> = ArrayView<'a, A, IxDyn>;
176
177/// zero-dimensional read-write array view
178pub type ArrayViewMut0<'a, A> = ArrayViewMut<'a, A, Ix0>;
179/// one-dimensional read-write array view
180pub type ArrayViewMut1<'a, A> = ArrayViewMut<'a, A, Ix1>;
181/// two-dimensional read-write array view
182pub type ArrayViewMut2<'a, A> = ArrayViewMut<'a, A, Ix2>;
183/// three-dimensional read-write array view
184pub type ArrayViewMut3<'a, A> = ArrayViewMut<'a, A, Ix3>;
185/// four-dimensional read-write array view
186pub type ArrayViewMut4<'a, A> = ArrayViewMut<'a, A, Ix4>;
187/// five-dimensional read-write array view
188pub type ArrayViewMut5<'a, A> = ArrayViewMut<'a, A, Ix5>;
189/// six-dimensional read-write array view
190pub type ArrayViewMut6<'a, A> = ArrayViewMut<'a, A, Ix6>;
191/// dynamic-dimensional read-write array view
192pub type ArrayViewMutD<'a, A> = ArrayViewMut<'a, A, IxDyn>;
193
194/// one-dimensional shared ownership array
195pub type ArcArray1<A> = ArcArray<A, Ix1>;
196/// two-dimensional shared ownership array
197pub type ArcArray2<A> = ArcArray<A, Ix2>;