numrs/llo/
reduction.rs

1/// Low-level reduction op representation
2
3use serde::{Serialize, Deserialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
6pub struct Reduction {
7    pub axis: Option<usize>,
8}
9
10/// Kind of reduction operation
11#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
12pub enum ReductionKind {
13    Sum,
14    Max,
15    Min,
16    Mean,
17    ArgMax,
18    Variance,
19}
20
21/// Selected reduction strategy
22#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
23pub enum ReductionStrategy {
24    ScalarLoop,
25    Parallel,
26    GpuKernel,
27}