Trait ndarray::Dimension

source ·
pub trait Dimension: Clone + Eq + Debug + Send + Sync + Default + IndexMut<usize, Output = usize> + Add<Self, Output = Self> + AddAssign + for<'x> AddAssign<&'x Self> + Sub<Self, Output = Self> + SubAssign + for<'x> SubAssign<&'x Self> + Mul<usize, Output = Self> + Mul<Self, Output = Self> + MulAssign + for<'x> MulAssign<&'x Self> + MulAssign<usize> {
    type SliceArg: ?Sized + AsRef<[SliceOrIndex]>;
    type Pattern: IntoDimension<Dim = Self>;
    type Smaller: Dimension;
    type Larger: Dimension;

    const NDIM: Option<usize>;

    fn ndim(&self) -> usize;
    fn into_pattern(self) -> Self::Pattern;
    fn zeros(ndim: usize) -> Self;
    fn __private__(&self) -> PrivateMarker;

    fn size(&self) -> usize { ... }
    fn size_checked(&self) -> Option<usize> { ... }
    fn as_array_view(&self) -> ArrayView1<'_, Ix> { ... }
    fn as_array_view_mut(&mut self) -> ArrayViewMut1<'_, Ix> { ... }
    fn into_dyn(self) -> IxDyn { ... }
}
Expand description

Array shape and index trait.

This trait defines a number of methods and operations that can be used on dimensions and indices.

Note: This trait can not be implemented outside the crate

Required Associated Types§

SliceArg is the type which is used to specify slicing for this dimension.

For the fixed size dimensions it is a fixed size array of the correct size, which you pass by reference. For the dynamic dimension it is a slice.

  • For Ix1: [SliceOrIndex; 1]
  • For Ix2: [SliceOrIndex; 2]
  • and so on..
  • For IxDyn: [SliceOrIndex]

The easiest way to create a &SliceInfo<SliceArg, Do> is using the s![] macro.

Pattern matching friendly form of the dimension value.

  • For Ix1: usize,
  • For Ix2: (usize, usize)
  • and so on..
  • For IxDyn: IxDyn

Next smaller dimension (if applicable)

Next larger dimension

Required Associated Constants§

For fixed-size dimension representations (e.g. Ix2), this should be Some(ndim), and for variable-size dimension representations (e.g. IxDyn), this should be None.

Required Methods§

Returns the number of dimensions (number of axes).

Convert the dimension into a pattern matching friendly value.

Creates a dimension of all zeros with the specified ndim.

This method is useful for generalizing over fixed-size and variable-size dimension representations.

Panics if Self has a fixed size that is not ndim.

This trait is private to implement; this method exists to make it impossible to implement outside the crate.

Provided Methods§

Compute the size of the dimension (number of elements)

Compute the size while checking for overflow.

Borrow as a read-only array view.

Borrow as a read-write array view.

Convert the dimensional into a dynamic dimensional (IxDyn).

Implementors§

IxDyn is a “dynamic” index, pretty hard to use when indexing, and memory wasteful, but it allows an arbitrary and dynamic number of axes.