Trait Shape

Source
pub trait Shape: Debug {
Show 28 methods // Required method fn shape(&self) -> &[usize]; // Provided methods fn size(&self) -> usize { ... } fn shape_at<I: Dim>(&self, i: I) -> usize { ... } fn shape_before<const N: usize>(&self) -> [usize; N] { ... } fn shape_of<D: Dims>(&self, d: D) -> Vec<usize> { ... } fn size_of<D: Dims>(&self, d: D) -> usize { ... } fn ndim(&self) -> usize { ... } fn dim<I: Dim>(&self, i: I) -> usize { ... } fn dims<D: Dims>(&self, d: D) -> Vec<usize> { ... } fn shape_transpose(&self, dim0: usize, dim1: usize) -> Vec<usize> { ... } fn shape_eq<S: Shape + ?Sized>(&self, rhs: &S) -> bool { ... } fn shape_ndim_eq<S: Shape + ?Sized>(&self, rhs: &S) -> bool { ... } fn shape_size_eq<S: Shape + ?Sized>(&self, rhs: &S) -> bool { ... } fn shape_expand_left<T: Shape + ?Sized>(&self, rhs: &T) -> Vec<usize> { ... } fn shape_expand_right<T: Shape + ?Sized>(&self, rhs: &T) -> Vec<usize> { ... } fn shape_broadcast_to<T: Shape + ?Sized>( &self, rhs: &T, ) -> Result<(Vec<usize>, bool, bool)> { ... } fn shape_broadcast_matmul<S: Shape + ?Sized>( &self, rhs: &S, ) -> Result<(Vec<usize>, Vec<usize>, Vec<usize>, bool, bool)> { ... } fn shape_reduce<T: AsRef<[usize]>>( &self, dims: T, keep_dim: bool, ) -> Vec<usize> { ... } fn shape_conv1d<S: Shape + ?Sized>( &self, kernel: &S, padding: usize, stride: usize, dilation: usize, ) -> Vec<usize> { ... } fn shape_conv2d<S: Shape + ?Sized>( &self, kernel: &S, padding: &[usize; 2], stride: &[usize; 2], dilation: &[usize; 2], ) -> Vec<usize> { ... } fn shape_conv_transpose1d<S: Shape + ?Sized>( &self, kernel: &S, padding: usize, output_padding: usize, stride: usize, dilation: usize, ) -> Vec<usize> { ... } fn shape_conv_transpose2d<S: Shape + ?Sized>( &self, kernel: &S, padding: &[usize; 2], output_padding: &[usize; 2], stride: &[usize; 2], dilation: &[usize; 2], ) -> Vec<usize> { ... } fn shape_avg_pool1d( &self, kernel_size: usize, stride: usize, padding: usize, ) -> Vec<usize> { ... } fn shape_avg_pool2d( &self, kernel_size: &(usize, usize), stride: &(usize, usize), padding: &(usize, usize), ) -> Vec<usize> { ... } fn shape_max_pool1d( &self, kernel_size: usize, stride: usize, padding: usize, dialation: usize, ) -> Vec<usize> { ... } fn shape_max_pool2d( &self, kernel_size: &(usize, usize), stride: &(usize, usize), padding: &(usize, usize), dialation: &(usize, usize), ) -> Vec<usize> { ... } fn shape_upsample_nearest1d(&self, size: usize) -> Vec<usize> { ... } fn shape_upsample_nearest2d(&self, size: &(usize, usize)) -> Vec<usize> { ... }
}

Required Methods§

Source

fn shape(&self) -> &[usize]

Provided Methods§

Source

fn size(&self) -> usize

Source

fn shape_at<I: Dim>(&self, i: I) -> usize

Source

fn shape_before<const N: usize>(&self) -> [usize; N]

Source

fn shape_of<D: Dims>(&self, d: D) -> Vec<usize>

Source

fn size_of<D: Dims>(&self, d: D) -> usize

Source

fn ndim(&self) -> usize

Source

fn dim<I: Dim>(&self, i: I) -> usize

Source

fn dims<D: Dims>(&self, d: D) -> Vec<usize>

Source

fn shape_transpose(&self, dim0: usize, dim1: usize) -> Vec<usize>

Source

fn shape_eq<S: Shape + ?Sized>(&self, rhs: &S) -> bool

Source

fn shape_ndim_eq<S: Shape + ?Sized>(&self, rhs: &S) -> bool

Source

fn shape_size_eq<S: Shape + ?Sized>(&self, rhs: &S) -> bool

Source

fn shape_expand_left<T: Shape + ?Sized>(&self, rhs: &T) -> Vec<usize>

Source

fn shape_expand_right<T: Shape + ?Sized>(&self, rhs: &T) -> Vec<usize>

Source

fn shape_broadcast_to<T: Shape + ?Sized>( &self, rhs: &T, ) -> Result<(Vec<usize>, bool, bool)>

Source

fn shape_broadcast_matmul<S: Shape + ?Sized>( &self, rhs: &S, ) -> Result<(Vec<usize>, Vec<usize>, Vec<usize>, bool, bool)>

Source

fn shape_reduce<T: AsRef<[usize]>>(&self, dims: T, keep_dim: bool) -> Vec<usize>

Source

fn shape_conv1d<S: Shape + ?Sized>( &self, kernel: &S, padding: usize, stride: usize, dilation: usize, ) -> Vec<usize>

Source

fn shape_conv2d<S: Shape + ?Sized>( &self, kernel: &S, padding: &[usize; 2], stride: &[usize; 2], dilation: &[usize; 2], ) -> Vec<usize>

Source

fn shape_conv_transpose1d<S: Shape + ?Sized>( &self, kernel: &S, padding: usize, output_padding: usize, stride: usize, dilation: usize, ) -> Vec<usize>

Source

fn shape_conv_transpose2d<S: Shape + ?Sized>( &self, kernel: &S, padding: &[usize; 2], output_padding: &[usize; 2], stride: &[usize; 2], dilation: &[usize; 2], ) -> Vec<usize>

Source

fn shape_avg_pool1d( &self, kernel_size: usize, stride: usize, padding: usize, ) -> Vec<usize>

Source

fn shape_avg_pool2d( &self, kernel_size: &(usize, usize), stride: &(usize, usize), padding: &(usize, usize), ) -> Vec<usize>

Source

fn shape_max_pool1d( &self, kernel_size: usize, stride: usize, padding: usize, dialation: usize, ) -> Vec<usize>

Source

fn shape_max_pool2d( &self, kernel_size: &(usize, usize), stride: &(usize, usize), padding: &(usize, usize), dialation: &(usize, usize), ) -> Vec<usize>

Source

fn shape_upsample_nearest1d(&self, size: usize) -> Vec<usize>

Source

fn shape_upsample_nearest2d(&self, size: &(usize, usize)) -> Vec<usize>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Shape for Vec<usize>

Source§

fn shape(&self) -> &[usize]

Source§

fn ndim(&self) -> usize

Source§

impl Shape for [usize]

Source§

fn shape(&self) -> &[usize]

Source§

fn ndim(&self) -> usize

Source§

impl<'a, T> Shape for &'a T
where T: Shape + ?Sized,

Source§

fn shape(&self) -> &[usize]

Source§

impl<const N: usize> Shape for [usize; N]

Source§

fn shape(&self) -> &[usize]

Source§

fn ndim(&self) -> usize

Implementors§