use crate::tensor::TensorBase;
use ndarray::{CowRepr, Ix2, OwnedArcRepr, OwnedRepr, RawViewRepr, ViewRepr};
pub type Tensor<A, D = Ix2> = TensorBase<OwnedRepr<A>, D>;
pub type TensorView<'a, A, D = Ix2> = TensorBase<ViewRepr<&'a A>, D>;
pub type TensorViewMut<'a, A, D = Ix2> = TensorBase<ViewRepr<&'a mut A>, D>;
pub type ArcTensor<A, D = Ix2> = TensorBase<OwnedArcRepr<A>, D>;
pub type CowTensor<'a, A, D = Ix2> = TensorBase<CowRepr<'a, A>, D>;
pub type RawViewTensor<A, D = Ix2> = TensorBase<RawViewRepr<*const A>, D>;
pub type RawViewMutTensor<A, D = Ix2> = TensorBase<RawViewRepr<*mut A>, D>;