haar_lib/algebra/
prod.rs

1//! 乗算
2pub use crate::algebra::traits::*;
3use crate::impl_algebra;
4
5/// 乗算を演算とする代数的構造
6#[derive(Clone, Copy, Default, Debug, PartialEq, Eq)]
7pub struct Prod<T>(pub T);
8
9macro_rules! implement {
10    ($($t:ty),*) => {
11        $(impl_algebra!(Prod<$t>; op: |a: Self, b: Self| Self(a.0 * b.0); id: Self(1 as $t); commu; assoc;);)*
12    };
13}
14
15implement!(i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, usize, f32, f64);