use ::{Ix, Array, ArrayView, ArrayViewMut};
pub type Ix0 = ();
pub type Ix1 = Ix;
pub type Ix2 = (Ix, Ix);
pub type Ix3 = (Ix, Ix, Ix);
pub type Ix4 = (Ix, Ix, Ix, Ix);
pub type IxDyn = Vec<Ix>;
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 ArrayD<A> = Array<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 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 ArrayViewMutD<'a, A> = ArrayViewMut<'a, A, IxDyn>;