Skip to main content

TensorReduction

Trait TensorReduction 

Source
pub trait TensorReduction {
    // Required methods
    fn reduce_sum(&mut self, input: &Tensor, axes: &[usize]) -> Result<Tensor>;
    fn reduce_prod(&mut self, input: &Tensor, axes: &[usize]) -> Result<Tensor>;
    fn reduce_max(&mut self, input: &Tensor, axes: &[usize]) -> Result<Tensor>;
    fn reduce_min(&mut self, input: &Tensor, axes: &[usize]) -> Result<Tensor>;

    // Provided methods
    fn reduce_sum_read(
        &mut self,
        input: TensorRead<'_>,
        axes: &[usize],
    ) -> Result<Tensor> { ... }
    fn reduce_prod_read(
        &mut self,
        input: TensorRead<'_>,
        axes: &[usize],
    ) -> Result<Tensor> { ... }
    fn reduce_max_read(
        &mut self,
        input: TensorRead<'_>,
        axes: &[usize],
    ) -> Result<Tensor> { ... }
    fn reduce_min_read(
        &mut self,
        input: TensorRead<'_>,
        axes: &[usize],
    ) -> Result<Tensor> { ... }
}
Expand description

Reduction operations.

§Examples

use tenferro_tensor::TensorReduction;

fn accepts_reduction<B: TensorReduction>(_backend: &mut B) {}

Required Methods§

Source

fn reduce_sum(&mut self, input: &Tensor, axes: &[usize]) -> Result<Tensor>

Source

fn reduce_prod(&mut self, input: &Tensor, axes: &[usize]) -> Result<Tensor>

Source

fn reduce_max(&mut self, input: &Tensor, axes: &[usize]) -> Result<Tensor>

Source

fn reduce_min(&mut self, input: &Tensor, axes: &[usize]) -> Result<Tensor>

Provided Methods§

Source

fn reduce_sum_read( &mut self, input: TensorRead<'_>, axes: &[usize], ) -> Result<Tensor>

Sum elements across axes from an owned tensor or borrowed view.

§Examples
use tenferro_tensor::{Tensor, TensorRead, TensorReduction};

fn sum_owned<B: TensorReduction>(
    backend: &mut B,
    input: &Tensor,
) -> tenferro_tensor::Result<Tensor> {
    backend.reduce_sum_read(TensorRead::from_tensor(input), &[0])
}
Source

fn reduce_prod_read( &mut self, input: TensorRead<'_>, axes: &[usize], ) -> Result<Tensor>

Multiply elements across axes from an owned tensor or borrowed view.

§Examples
use tenferro_tensor::{Tensor, TensorRead, TensorReduction};

fn prod_owned<B: TensorReduction>(
    backend: &mut B,
    input: &Tensor,
) -> tenferro_tensor::Result<Tensor> {
    backend.reduce_prod_read(TensorRead::from_tensor(input), &[0])
}
Source

fn reduce_max_read( &mut self, input: TensorRead<'_>, axes: &[usize], ) -> Result<Tensor>

Take maximum values across axes from an owned tensor or borrowed view.

§Examples
use tenferro_tensor::{Tensor, TensorRead, TensorReduction};

fn max_owned<B: TensorReduction>(
    backend: &mut B,
    input: &Tensor,
) -> tenferro_tensor::Result<Tensor> {
    backend.reduce_max_read(TensorRead::from_tensor(input), &[0])
}
Source

fn reduce_min_read( &mut self, input: TensorRead<'_>, axes: &[usize], ) -> Result<Tensor>

Take minimum values across axes from an owned tensor or borrowed view.

§Examples
use tenferro_tensor::{Tensor, TensorRead, TensorReduction};

fn min_owned<B: TensorReduction>(
    backend: &mut B,
    input: &Tensor,
) -> tenferro_tensor::Result<Tensor> {
    backend.reduce_min_read(TensorRead::from_tensor(input), &[0])
}

Implementors§