binius_field/arch/portable/
packed_16.rs1use super::{
4 packed::PackedPrimitiveType,
5 packed_arithmetic::{alphas, impl_tower_constants},
6};
7use crate::{
8 arch::portable::packed_macros::{portable_macros::*, *},
9 arithmetic_traits::{
10 impl_invert_with, impl_mul_alpha_with, impl_mul_with, impl_square_with,
11 impl_transformation_with_strategy,
12 },
13};
14
15define_packed_binary_fields!(
16 underlier: u16,
17 packed_fields: [
18 packed_field {
19 name: PackedBinaryField16x1b,
20 scalar: BinaryField1b,
21 alpha_idx: 0,
22 mul: (None),
23 square: (None),
24 invert: (None),
25 mul_alpha: (None),
26 transform: (PackedStrategy),
27 },
28 packed_field {
29 name: PackedBinaryField8x2b,
30 scalar: BinaryField2b,
31 alpha_idx: 1,
32 mul: (PackedStrategy),
33 square: (PackedStrategy),
34 invert: (PairwiseRecursiveStrategy),
35 mul_alpha: (PackedStrategy),
36 transform: (PackedStrategy),
37 },
38 packed_field {
39 name: PackedBinaryField4x4b,
40 scalar: BinaryField4b,
41 alpha_idx: 2,
42 mul: (PackedStrategy),
43 square: (PackedStrategy),
44 invert: (PairwiseRecursiveStrategy),
45 mul_alpha: (PackedStrategy),
46 transform: (PackedStrategy),
47 },
48 packed_field {
49 name: PackedBinaryField2x8b,
50 scalar: BinaryField8b,
51 alpha_idx: 3,
52 mul: (PairwiseTableStrategy),
53 square: (PackedStrategy),
54 invert: (PairwiseTableStrategy),
55 mul_alpha: (PackedStrategy),
56 transform: (PackedStrategy),
57 },
58 packed_field {
59 name: PackedBinaryField1x16b,
60 scalar: BinaryField16b,
61 alpha_idx: _,
62 mul: (PairwiseRecursiveStrategy),
63 square: (PairwiseRecursiveStrategy),
64 invert: (PairwiseRecursiveStrategy),
65 mul_alpha: (PairwiseRecursiveStrategy),
66 transform: (PairwiseStrategy),
67 }
68 ]
69);