Skip to main content

Shape

Struct Shape 

Source
pub struct Shape(/* private fields */);

Implementations§

Source§

impl Shape

Source

pub fn scalar() -> Self

Source

pub fn is_scalar(&self) -> bool

Source

pub fn rank(&self) -> usize

Source

pub fn dims(&self) -> &[usize]

Source

pub fn into_dims(self) -> Vec<usize>

Source

pub fn dim(&self, dim: impl Dim) -> Result<usize>

Source

pub fn element_count(&self) -> usize

Source

pub fn is_contiguous(&self, stride: &[usize]) -> bool

Source

pub fn extend(self, additional_dims: &[usize]) -> Self

Source

pub fn broadcast_shape_binary_op( &self, rhs: &Self, op: &'static str, ) -> Result<Shape>

Check whether the two shapes are compatible for broadcast, and if it is the case return the broadcasted shape. This is to be used for binary pointwise ops. Copy from https://github.com/huggingface/candle

Source

pub fn dim_coordinates(&self) -> DimCoordinates

Returns an iterator over dimension coordinates.

This iterator yields the multi-dimensional coordinates (e.g., [i, j, k, ...]) of each element in the array, independent of the physical storage layout.

Example for shape = (2, 2): yields: [0, 0], [0, 1], [1, 0], [1, 1]

Source

pub fn dims_coordinates<const N: usize>(&self) -> Result<DimNCoordinates<N>>

Source

pub fn dim2_coordinates(&self) -> Result<DimNCoordinates<2>>

Source

pub fn dim3_coordinates(&self) -> Result<DimNCoordinates<3>>

Source

pub fn dim4_coordinates(&self) -> Result<DimNCoordinates<4>>

Source

pub fn dim5_coordinates(&self) -> Result<DimNCoordinates<5>>

Source§

impl Shape

Source

pub fn dims0(&self) -> Result<()>

Source§

impl Shape

Source

pub fn dims1(&self) -> Result<usize>

Source§

impl Shape

Source

pub fn dims2(&self) -> Result<(usize, usize)>

Source§

impl Shape

Source

pub fn dims3(&self) -> Result<(usize, usize, usize)>

Source§

impl Shape

Source

pub fn dims4(&self) -> Result<(usize, usize, usize, usize)>

Source§

impl Shape

Source

pub fn dims5(&self) -> Result<(usize, usize, usize, usize, usize)>

Trait Implementations§

Source§

impl Clone for Shape

Source§

fn clone(&self) -> Shape

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Shape

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for Shape

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<&[usize]> for Shape

Source§

fn from(dims: &[usize]) -> Self

Converts to this type from the input type.
Source§

impl<const C: usize> From<&[usize; C]> for Shape

Source§

fn from(dims: &[usize; C]) -> Self

Converts to this type from the input type.
Source§

impl From<&Shape> for Shape

Source§

fn from(shape: &Shape) -> Self

Converts to this type from the input type.
Source§

impl From<&Vec<usize>> for Shape

Source§

fn from(dims: &Vec<usize>) -> Self

Converts to this type from the input type.
Source§

impl From<()> for Shape

Source§

fn from(_: ()) -> Self

Converts to this type from the input type.
Source§

impl From<(usize,)> for Shape

Source§

fn from(d: (usize,)) -> Self

Converts to this type from the input type.
Source§

impl From<(usize, usize)> for Shape

Source§

fn from(d: (usize, usize)) -> Self

Converts to this type from the input type.
Source§

impl From<(usize, usize, usize)> for Shape

Source§

fn from(d: (usize, usize, usize)) -> Self

Converts to this type from the input type.
Source§

impl From<(usize, usize, usize, usize)> for Shape

Source§

fn from(d: (usize, usize, usize, usize)) -> Self

Converts to this type from the input type.
Source§

impl From<(usize, usize, usize, usize, usize)> for Shape

Source§

fn from(d: (usize, usize, usize, usize, usize)) -> Self

Converts to this type from the input type.
Source§

impl From<(usize, usize, usize, usize, usize, usize)> for Shape

Source§

fn from(d: (usize, usize, usize, usize, usize, usize)) -> Self

Converts to this type from the input type.
Source§

impl From<Vec<usize>> for Shape

Source§

fn from(dims: Vec<usize>) -> Self

Converts to this type from the input type.
Source§

impl From<usize> for Shape

Source§

fn from(d1: usize) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for Shape

Source§

fn eq(&self, other: &Shape) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl TryInto<()> for Shape

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<()>

Performs the conversion.
Source§

impl TryInto<(usize, usize)> for Shape

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<(usize, usize)>

Performs the conversion.
Source§

impl TryInto<(usize, usize, usize)> for Shape

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<(usize, usize, usize)>

Performs the conversion.
Source§

impl TryInto<(usize, usize, usize, usize)> for Shape

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<(usize, usize, usize, usize)>

Performs the conversion.
Source§

impl TryInto<(usize, usize, usize, usize, usize)> for Shape

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<(usize, usize, usize, usize, usize)>

Performs the conversion.
Source§

impl TryInto<usize> for Shape

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<usize>

Performs the conversion.
Source§

impl Eq for Shape

Source§

impl StructuralPartialEq for Shape

Auto Trait Implementations§

§

impl Freeze for Shape

§

impl RefUnwindSafe for Shape

§

impl Send for Shape

§

impl Sync for Shape

§

impl Unpin for Shape

§

impl UnsafeUnpin for Shape

§

impl UnwindSafe for Shape

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V