Trait Tensor

Source
pub trait Tensor<T: RDSTyped>: Sized {
Show 25 methods // Required methods fn from_scalar<R: AsRef<[usize]>>(shape: R, s: T) -> Self; fn from_tensor<W: Tensor<S>, S: RDSTyped + CastTo<T>>(tensor: &W) -> Self; fn from_slice<R: AsRef<[usize]>, S: AsRef<[T]>>(shape: R, slice: S) -> Self; fn from_boxed_slice<R: AsRef<[usize]>>(shape: R, data: Box<[T]>) -> Self; fn into_boxed_slice(self) -> Box<[T]>; fn dim(&self) -> usize; fn shape(&self) -> &[usize]; fn strides(&self) -> &[usize]; fn size(&self) -> usize; fn rds_type(&self) -> RDSType; fn get_raw_array(&self) -> &[T]; fn get_raw_array_mut(&mut self) -> &mut [T]; fn insert<W: Tensor<T>>(&mut self, dim: usize, pos: usize, tensor: &W); fn extract<R: AsRef<[Range<usize>]>>(&self, bounds: R) -> Self; fn remove<R: AsRef<[Range<usize>]>>(&mut self, bounds: R); fn assign<R: AsRef<[Range<usize>]>, W: Tensor<T>>( &mut self, bounds: R, tensor: &W, ); fn transpose(&mut self); // Provided methods fn zeros<R: AsRef<[usize]>>(shape: R) -> Self { ... } fn ones<R: AsRef<[usize]>>(shape: R) -> Self { ... } fn effective_dim(&self) -> usize { ... } fn reshape_into_vector<R: AsRef<[usize]>>(self, shape: R) -> Vector<T> { ... } fn reshape_into_matrix<R: AsRef<[usize]>>(self, shape: R) -> Matrix<T> { ... } fn reshape_into_tensor<R: AsRef<[usize]>>(self, shape: R) -> TensorN<T> { ... } fn right_split(&mut self, dim: usize, pos: usize) -> Self { ... } fn left_split(&mut self, dim: usize, pos: usize) -> Self { ... }
}

Required Methods§

Source

fn from_scalar<R: AsRef<[usize]>>(shape: R, s: T) -> Self

Source

fn from_tensor<W: Tensor<S>, S: RDSTyped + CastTo<T>>(tensor: &W) -> Self

Source

fn from_slice<R: AsRef<[usize]>, S: AsRef<[T]>>(shape: R, slice: S) -> Self

Source

fn from_boxed_slice<R: AsRef<[usize]>>(shape: R, data: Box<[T]>) -> Self

Source

fn into_boxed_slice(self) -> Box<[T]>

Source

fn dim(&self) -> usize

Source

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

Source

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

Source

fn size(&self) -> usize

Source

fn rds_type(&self) -> RDSType

Source

fn get_raw_array(&self) -> &[T]

Source

fn get_raw_array_mut(&mut self) -> &mut [T]

Source

fn insert<W: Tensor<T>>(&mut self, dim: usize, pos: usize, tensor: &W)

Source

fn extract<R: AsRef<[Range<usize>]>>(&self, bounds: R) -> Self

Source

fn remove<R: AsRef<[Range<usize>]>>(&mut self, bounds: R)

Source

fn assign<R: AsRef<[Range<usize>]>, W: Tensor<T>>( &mut self, bounds: R, tensor: &W, )

Source

fn transpose(&mut self)

Provided Methods§

Source

fn zeros<R: AsRef<[usize]>>(shape: R) -> Self

Source

fn ones<R: AsRef<[usize]>>(shape: R) -> Self

Source

fn effective_dim(&self) -> usize

Source

fn reshape_into_vector<R: AsRef<[usize]>>(self, shape: R) -> Vector<T>

Source

fn reshape_into_matrix<R: AsRef<[usize]>>(self, shape: R) -> Matrix<T>

Source

fn reshape_into_tensor<R: AsRef<[usize]>>(self, shape: R) -> TensorN<T>

Source

fn right_split(&mut self, dim: usize, pos: usize) -> Self

Source

fn left_split(&mut self, dim: usize, pos: usize) -> Self

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.

Implementors§

Source§

impl<T: RDSTyped> Tensor<T> for Matrix<T>

Source§

impl<T: RDSTyped> Tensor<T> for TensorN<T>

Source§

impl<T: RDSTyped> Tensor<T> for Vector<T>