Tensor

Trait Tensor 

Source
pub trait Tensor:
    Clone
    + Send
    + Sync {
    type Dtype: DataType;
    type Backend: Backend;

    // Required methods
    fn shape(&self) -> &[usize];
    fn dtype(&self) -> Self::Dtype;
    fn device(&self) -> <Self::Backend as Backend>::Device;
    fn to_device(
        &self,
        device: &<Self::Backend as Backend>::Device,
    ) -> Result<Self, <Self::Backend as Backend>::Error>;
    fn reshape(
        &self,
        shape: &[usize],
    ) -> Result<Self, <Self::Backend as Backend>::Error>;
    fn contiguous(&self) -> Result<Self, <Self::Backend as Backend>::Error>;

    // Provided method
    fn numel(&self) -> usize { ... }
}

Required Associated Types§

Required Methods§

Source

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

Source

fn dtype(&self) -> Self::Dtype

Source

fn device(&self) -> <Self::Backend as Backend>::Device

Source

fn to_device( &self, device: &<Self::Backend as Backend>::Device, ) -> Result<Self, <Self::Backend as Backend>::Error>

Source

fn reshape( &self, shape: &[usize], ) -> Result<Self, <Self::Backend as Backend>::Error>

Source

fn contiguous(&self) -> Result<Self, <Self::Backend as Backend>::Error>

Provided Methods§

Source

fn numel(&self) -> 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.

Implementors§