haar_lib/algebra/act/
chmax_max.rs

1//! Range Chmax Range Max
2pub use crate::algebra::{act::*, min_max::Max};
3
4/// Range Chmax Range Max 用のモノイド作用
5#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
6pub struct ChmaxMax<T>(pub Max<T>);
7
8impl<T> Act<Max<T>> for ChmaxMax<T>
9where
10    Max<T>: Monoid<Element = T>,
11{
12    type Monoid = Max<T>;
13    type Element = T;
14    fn monoid(&self) -> &Self::Monoid {
15        &self.0
16    }
17    fn act(&self, m: &Max<T>, val: T, a: T, _len: usize) -> T {
18        m.op(val, a)
19    }
20}