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);