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}