haar_lib/algebra/act/
mul_prod.rs1pub use crate::algebra::{act::Act, traits::*};
3
4#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
6pub struct MulProd<S: Monoid + Multiplicative>(pub S);
7
8impl<S> Act<S> for MulProd<S>
9where
10 S: Monoid + Multiplicative,
11 S::Element: Clone,
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: &S, val: S::Element, a: Self::Element, n: usize) -> S::Element {
20 self.0.op(val, self.0.times(a, n as u64))
21 }
22}