haar_lib/algebra/act/
chmin_min.rs

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