haar_lib/algebra/act/
mul_sum.rs1pub use crate::algebra::{act::Act, traits::*};
3
4#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
6pub struct MulSum<S: Monoid + Multiplicative>(pub S);
7
8impl<T, M, S> Act<M> for MulSum<S>
9where
10 M: Monoid<Element = T> + Additive,
11 S: Monoid<Element = T> + Multiplicative,
12{
13 type Monoid = S;
14 type Element = S::Element;
15
16 fn monoid(&self) -> &Self::Monoid {
17 &self.0
18 }
19 fn act(&self, _m: &M, val: M::Element, a: Self::Element, _n: usize) -> M::Element {
20 self.0.op(val, a)
21 }
22}