binius_field/arch/portable/
packed_aes_16.rs1use super::{
4 packed::PackedPrimitiveType, packed_arithmetic::impl_tower_constants,
5 packed_macros::impl_broadcast,
6};
7use crate::{
8 AESTowerField8b,
9 arch::portable::packed_macros::{portable_macros::*, *},
10 arithmetic_traits::{
11 impl_invert_with, impl_mul_alpha_with, impl_mul_with, impl_square_with,
12 impl_transformation_with_strategy,
13 },
14};
15
16define_packed_binary_fields!(
17 underlier: u16,
18 packed_fields: [
19 packed_field {
20 name: PackedAESBinaryField2x8b,
21 scalar: AESTowerField8b,
22 alpha_idx: _,
23 mul: (PairwiseTableStrategy),
24 square: (PairwiseTableStrategy),
25 invert: (PairwiseTableStrategy),
26 mul_alpha: (PairwiseTableStrategy),
27 transform: (PackedStrategy),
28 },
29 packed_field {
30 name: PackedAESBinaryField1x16b,
31 scalar: AESTowerField16b,
32 alpha_idx: _,
33 mul: (PairwiseRecursiveStrategy),
34 square: (PairwiseRecursiveStrategy),
35 invert: (PairwiseRecursiveStrategy),
36 mul_alpha: (PackedStrategy),
37 transform: (PairwiseStrategy),
38 },
39 ]
40);
41
42impl_tower_constants!(AESTowerField8b, u16, 0x00d3);