use crate::dimension::Dim;
use crate::{ArcArray, Array, ArrayRef, ArrayView, ArrayViewMut, Ix, IxDynImpl, LayoutRef};
#[allow(non_snake_case)]
#[inline(always)]
pub const fn Ix0() -> Ix0
{
Dim::new([])
}
#[allow(non_snake_case)]
#[inline(always)]
pub const fn Ix1(i0: Ix) -> Ix1
{
Dim::new([i0])
}
#[allow(non_snake_case)]
#[inline(always)]
pub const fn Ix2(i0: Ix, i1: Ix) -> Ix2
{
Dim::new([i0, i1])
}
#[allow(non_snake_case)]
#[inline(always)]
pub const fn Ix3(i0: Ix, i1: Ix, i2: Ix) -> Ix3
{
Dim::new([i0, i1, i2])
}
#[allow(non_snake_case)]
#[inline(always)]
pub const fn Ix4(i0: Ix, i1: Ix, i2: Ix, i3: Ix) -> Ix4
{
Dim::new([i0, i1, i2, i3])
}
#[allow(non_snake_case)]
#[inline(always)]
pub const fn Ix5(i0: Ix, i1: Ix, i2: Ix, i3: Ix, i4: Ix) -> Ix5
{
Dim::new([i0, i1, i2, i3, i4])
}
#[allow(non_snake_case)]
#[inline(always)]
pub const fn Ix6(i0: Ix, i1: Ix, i2: Ix, i3: Ix, i4: Ix, i5: Ix) -> Ix6
{
Dim::new([i0, i1, i2, i3, i4, i5])
}
#[allow(non_snake_case)]
#[inline(always)]
pub fn IxDyn(ix: &[Ix]) -> IxDyn
{
Dim(ix)
}
pub type Ix0 = Dim<[Ix; 0]>;
pub type Ix1 = Dim<[Ix; 1]>;
pub type Ix2 = Dim<[Ix; 2]>;
pub type Ix3 = Dim<[Ix; 3]>;
pub type Ix4 = Dim<[Ix; 4]>;
pub type Ix5 = Dim<[Ix; 5]>;
pub type Ix6 = Dim<[Ix; 6]>;
pub type IxDyn = Dim<IxDynImpl>;
pub type Array0<A> = Array<A, Ix0>;
pub type Array1<A> = Array<A, Ix1>;
pub type Array2<A> = Array<A, Ix2>;
pub type Array3<A> = Array<A, Ix3>;
pub type Array4<A> = Array<A, Ix4>;
pub type Array5<A> = Array<A, Ix5>;
pub type Array6<A> = Array<A, Ix6>;
pub type ArrayD<A> = Array<A, IxDyn>;
pub type ArrayRef0<A> = ArrayRef<A, Ix0>;
pub type ArrayRef1<A> = ArrayRef<A, Ix1>;
pub type ArrayRef2<A> = ArrayRef<A, Ix2>;
pub type ArrayRef3<A> = ArrayRef<A, Ix3>;
pub type ArrayRef4<A> = ArrayRef<A, Ix4>;
pub type ArrayRef5<A> = ArrayRef<A, Ix5>;
pub type ArrayRef6<A> = ArrayRef<A, Ix6>;
pub type ArrayRefD<A> = ArrayRef<A, IxDyn>;
pub type LayoutRef0<A> = LayoutRef<A, Ix0>;
pub type LayoutRef1<A> = LayoutRef<A, Ix1>;
pub type LayoutRef2<A> = LayoutRef<A, Ix2>;
pub type LayoutRef3<A> = LayoutRef<A, Ix3>;
pub type LayoutRef4<A> = LayoutRef<A, Ix4>;
pub type LayoutRef5<A> = LayoutRef<A, Ix5>;
pub type LayoutRef6<A> = LayoutRef<A, Ix6>;
pub type LayoutRefD<A> = LayoutRef<A, IxDyn>;
pub type ArrayView0<'a, A> = ArrayView<'a, A, Ix0>;
pub type ArrayView1<'a, A> = ArrayView<'a, A, Ix1>;
pub type ArrayView2<'a, A> = ArrayView<'a, A, Ix2>;
pub type ArrayView3<'a, A> = ArrayView<'a, A, Ix3>;
pub type ArrayView4<'a, A> = ArrayView<'a, A, Ix4>;
pub type ArrayView5<'a, A> = ArrayView<'a, A, Ix5>;
pub type ArrayView6<'a, A> = ArrayView<'a, A, Ix6>;
pub type ArrayViewD<'a, A> = ArrayView<'a, A, IxDyn>;
pub type ArrayViewMut0<'a, A> = ArrayViewMut<'a, A, Ix0>;
pub type ArrayViewMut1<'a, A> = ArrayViewMut<'a, A, Ix1>;
pub type ArrayViewMut2<'a, A> = ArrayViewMut<'a, A, Ix2>;
pub type ArrayViewMut3<'a, A> = ArrayViewMut<'a, A, Ix3>;
pub type ArrayViewMut4<'a, A> = ArrayViewMut<'a, A, Ix4>;
pub type ArrayViewMut5<'a, A> = ArrayViewMut<'a, A, Ix5>;
pub type ArrayViewMut6<'a, A> = ArrayViewMut<'a, A, Ix6>;
pub type ArrayViewMutD<'a, A> = ArrayViewMut<'a, A, IxDyn>;
pub type ArcArray1<A> = ArcArray<A, Ix1>;
pub type ArcArray2<A> = ArcArray<A, Ix2>;
pub type ArcArray3<A> = ArcArray<A, Ix3>;
pub type ArcArray4<A> = ArcArray<A, Ix4>;
pub type ArcArray5<A> = ArcArray<A, Ix5>;
pub type ArcArray6<A> = ArcArray<A, Ix6>;
pub type ArcArrayD<A> = ArcArray<A, IxDyn>;