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§
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§
Sourcefn reduce_sum_read(
&mut self,
input: TensorRead<'_>,
axes: &[usize],
) -> Result<Tensor>
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])
}Sourcefn reduce_prod_read(
&mut self,
input: TensorRead<'_>,
axes: &[usize],
) -> Result<Tensor>
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])
}Sourcefn reduce_max_read(
&mut self,
input: TensorRead<'_>,
axes: &[usize],
) -> Result<Tensor>
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])
}Sourcefn reduce_min_read(
&mut self,
input: TensorRead<'_>,
axes: &[usize],
) -> Result<Tensor>
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])
}