1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#[macro_export] macro_rules! ch { ($x:expr, $y:expr, $z:expr) => { ($x & $y) ^ (!$x & $z) }; } #[macro_export] macro_rules! parity { ($x:expr, $y:expr, $z:expr) => { $x ^ $y ^ $z }; } #[macro_export] macro_rules! maj { ($x:expr, $y:expr, $z:expr) => { ($x & $y) ^ ($x & $z) ^ ($y & $z) }; }