binius_field/arch/portable/
bitwise_and_arithmetic.rs1use super::packed::PackedPrimitiveType;
4use crate::{
5 BinaryField1b,
6 arch::BitwiseAndStrategy,
7 arithmetic_traits::{TaggedInvertOrZero, TaggedMul, TaggedMulAlpha, TaggedSquare},
8 underlier::UnderlierWithBitOps,
9};
10
11impl<U: UnderlierWithBitOps> TaggedMul<BitwiseAndStrategy>
12 for PackedPrimitiveType<U, BinaryField1b>
13{
14 #[inline]
15 fn mul(self, rhs: Self) -> Self {
16 (self.0 & rhs.0).into()
17 }
18}
19
20impl<U: UnderlierWithBitOps> TaggedSquare<BitwiseAndStrategy>
21 for PackedPrimitiveType<U, BinaryField1b>
22{
23 #[inline]
24 fn square(self) -> Self {
25 self
26 }
27}
28
29impl<U: UnderlierWithBitOps> TaggedInvertOrZero<BitwiseAndStrategy>
30 for PackedPrimitiveType<U, BinaryField1b>
31{
32 #[inline]
33 fn invert_or_zero(self) -> Self {
34 self
35 }
36}
37
38impl<U: UnderlierWithBitOps> TaggedMulAlpha<BitwiseAndStrategy>
39 for PackedPrimitiveType<U, BinaryField1b>
40{
41 #[inline]
42 fn mul_alpha(self) -> Self {
43 self
44 }
45}