Trait Backend

Source
pub trait Backend:
    Debug
    + Send
    + Sync {
    // Required methods
    fn zeros(&self, shape: &Shape) -> Result<Storage>;
    fn ones(&self, shape: &Shape) -> Result<Storage>;
    fn from_slice(&self, data: &[f32], shape: &Shape) -> Result<Storage>;
    fn add(&self, lhs: &Storage, rhs: &Storage) -> Result<Storage>;
    fn sub(&self, lhs: &Storage, rhs: &Storage) -> Result<Storage>;
    fn mul(&self, lhs: &Storage, rhs: &Storage) -> Result<Storage>;
    fn div(&self, lhs: &Storage, rhs: &Storage) -> Result<Storage>;
    fn sum(&self, storage: &Storage, axis: Option<usize>) -> Result<Storage>;
    fn mean(&self, storage: &Storage, axis: Option<usize>) -> Result<Storage>;
    fn transpose(&self, storage: &Storage, shape: &Shape) -> Result<Storage>;
    fn to_vec_f32(&self, storage: &Storage) -> Result<Vec<f32>>;

    // Provided method
    fn is_available(&self) -> bool { ... }
}

Required Methods§

Source

fn zeros(&self, shape: &Shape) -> Result<Storage>

Source

fn ones(&self, shape: &Shape) -> Result<Storage>

Source

fn from_slice(&self, data: &[f32], shape: &Shape) -> Result<Storage>

Source

fn add(&self, lhs: &Storage, rhs: &Storage) -> Result<Storage>

Source

fn sub(&self, lhs: &Storage, rhs: &Storage) -> Result<Storage>

Source

fn mul(&self, lhs: &Storage, rhs: &Storage) -> Result<Storage>

Source

fn div(&self, lhs: &Storage, rhs: &Storage) -> Result<Storage>

Source

fn sum(&self, storage: &Storage, axis: Option<usize>) -> Result<Storage>

Source

fn mean(&self, storage: &Storage, axis: Option<usize>) -> Result<Storage>

Source

fn transpose(&self, storage: &Storage, shape: &Shape) -> Result<Storage>

Source

fn to_vec_f32(&self, storage: &Storage) -> Result<Vec<f32>>

Provided Methods§

Implementors§