Previously, we used a little bit of generation to drive a lot of Rust macros. This works, but it's a little confusing to read and write. In addition, we used a lot of implementations with variable timings based on their input, which isn't great for crypto. This is the start of an attempt to just generate all of the relevant Rust code directly, and to use timing-channel resistant implementations for most of the routines.
1671 lines
60 KiB
Rust
1671 lines
60 KiB
Rust
addition_impls!(U192, U256);
|
|
base_impls!(U192, 3);
|
|
random_impls!(U192, UniformU192);
|
|
barrett_impl!(BarrettU192, U192, U256, U384, U448);
|
|
div_impls!(U192, U384);
|
|
modexp_impls!(U192, U192);
|
|
modexp_impls!(U192, BarrettU192);
|
|
modmul_impls!(U192, U384, BarrettU192);
|
|
modsq_impls!(U192, U384, BarrettU192);
|
|
multiply_impls!(U192, U384);
|
|
scale_impls!(U192, U256);
|
|
shift_impls!(U192, 3);
|
|
square_impls!(U192, U384, 192);
|
|
subtraction_impls!(U192, 3);
|
|
conversion_impls!(U192, U256);
|
|
conversion_impls!(U192, U320);
|
|
conversion_impls!(U192, U384);
|
|
conversion_impls!(U192, U448);
|
|
conversion_impls!(U192, U512);
|
|
conversion_impls!(U192, U768);
|
|
conversion_impls!(U192, U896);
|
|
conversion_impls!(U192, U1024);
|
|
sqrt_impls!(U192);
|
|
prime_gen_impls!(U192);
|
|
addition_impls!(U256, U320);
|
|
base_impls!(U256, 4);
|
|
random_impls!(U256, UniformU256);
|
|
barrett_impl!(BarrettU256, U256, U320, U512, U576);
|
|
div_impls!(U256, U512);
|
|
modexp_impls!(U256, U256);
|
|
modexp_impls!(U256, BarrettU256);
|
|
modmul_impls!(U256, U512, BarrettU256);
|
|
modsq_impls!(U256, U512, BarrettU256);
|
|
multiply_impls!(U256, U512);
|
|
scale_impls!(U256, U320);
|
|
shift_impls!(U256, 4);
|
|
square_impls!(U256, U512, 256);
|
|
subtraction_impls!(U256, 4);
|
|
conversion_impls!(U256, U320);
|
|
conversion_impls!(U256, U384);
|
|
conversion_impls!(U256, U448);
|
|
conversion_impls!(U256, U512);
|
|
conversion_impls!(U256, U576);
|
|
conversion_impls!(U256, U1024);
|
|
conversion_impls!(U256, U1152);
|
|
conversion_impls!(U256, U2048);
|
|
conversion_impls!(U256, U3072);
|
|
sqrt_impls!(U256);
|
|
prime_gen_impls!(U256);
|
|
addition_impls!(U320, U384);
|
|
base_impls!(U320, 5);
|
|
random_impls!(U320, UniformU320);
|
|
div_impls!(U320, U640);
|
|
multiply_impls!(U320, U640);
|
|
scale_impls!(U320, U384);
|
|
shift_impls!(U320, 5);
|
|
square_impls!(U320, U640, 320);
|
|
subtraction_impls!(U320, 5);
|
|
conversion_impls!(U320, U384);
|
|
conversion_impls!(U320, U512);
|
|
conversion_impls!(U320, U576);
|
|
conversion_impls!(U320, U640);
|
|
conversion_impls!(U320, U704);
|
|
addition_impls!(U384, U448);
|
|
base_impls!(U384, 6);
|
|
random_impls!(U384, UniformU384);
|
|
barrett_impl!(BarrettU384, U384, U448, U768, U832);
|
|
div_impls!(U384, U768);
|
|
modmul_impls!(U384, U768, BarrettU384);
|
|
multiply_impls!(U384, U768);
|
|
scale_impls!(U384, U448);
|
|
shift_impls!(U384, 6);
|
|
square_impls!(U384, U768, 384);
|
|
subtraction_impls!(U384, 6);
|
|
conversion_impls!(U384, U448);
|
|
conversion_impls!(U384, U768);
|
|
conversion_impls!(U384, U832);
|
|
conversion_impls!(U384, U1024);
|
|
conversion_impls!(U384, U1536);
|
|
addition_impls!(U448, U512);
|
|
base_impls!(U448, 7);
|
|
random_impls!(U448, UniformU448);
|
|
barrett_impl!(BarrettU448, U448, U512, U896, U960);
|
|
div_impls!(U448, U896);
|
|
multiply_impls!(U448, U896);
|
|
scale_impls!(U448, U512);
|
|
shift_impls!(U448, 7);
|
|
square_impls!(U448, U896, 448);
|
|
subtraction_impls!(U448, 7);
|
|
conversion_impls!(U448, U512);
|
|
conversion_impls!(U448, U768);
|
|
conversion_impls!(U448, U832);
|
|
conversion_impls!(U448, U896);
|
|
conversion_impls!(U448, U960);
|
|
addition_impls!(U512, U576);
|
|
base_impls!(U512, 8);
|
|
random_impls!(U512, UniformU512);
|
|
barrett_impl!(BarrettU512, U512, U576, U1024, U1088);
|
|
div_impls!(U512, U1024);
|
|
modexp_impls!(U512, U512);
|
|
modexp_impls!(U512, BarrettU512);
|
|
modmul_impls!(U512, U1024, BarrettU512);
|
|
modsq_impls!(U512, U1024, BarrettU512);
|
|
multiply_impls!(U512, U1024);
|
|
scale_impls!(U512, U576);
|
|
shift_impls!(U512, 8);
|
|
square_impls!(U512, U1024, 512);
|
|
subtraction_impls!(U512, 8);
|
|
conversion_impls!(U512, U576);
|
|
conversion_impls!(U512, U896);
|
|
conversion_impls!(U512, U960);
|
|
conversion_impls!(U512, U1024);
|
|
conversion_impls!(U512, U1088);
|
|
conversion_impls!(U512, U2048);
|
|
conversion_impls!(U512, U3072);
|
|
prime_gen_impls!(U512);
|
|
addition_impls!(U576, U640);
|
|
base_impls!(U576, 9);
|
|
random_impls!(U576, UniformU576);
|
|
barrett_impl!(BarrettU576, U576, U640, U1152, U1216);
|
|
div_impls!(U576, U1152);
|
|
modmul_impls!(U576, U1152, BarrettU576);
|
|
multiply_impls!(U576, U1152);
|
|
scale_impls!(U576, U640);
|
|
shift_impls!(U576, 9);
|
|
square_impls!(U576, U1152, 576);
|
|
subtraction_impls!(U576, 9);
|
|
conversion_impls!(U576, U640);
|
|
conversion_impls!(U576, U1024);
|
|
conversion_impls!(U576, U1088);
|
|
conversion_impls!(U576, U1152);
|
|
conversion_impls!(U576, U1216);
|
|
conversion_impls!(U576, U2304);
|
|
addition_impls!(U640, U704);
|
|
base_impls!(U640, 10);
|
|
random_impls!(U640, UniformU640);
|
|
div_impls!(U640, U1280);
|
|
multiply_impls!(U640, U1280);
|
|
scale_impls!(U640, U704);
|
|
shift_impls!(U640, 10);
|
|
square_impls!(U640, U1280, 640);
|
|
subtraction_impls!(U640, 10);
|
|
conversion_impls!(U640, U704);
|
|
conversion_impls!(U640, U1152);
|
|
conversion_impls!(U640, U1216);
|
|
conversion_impls!(U640, U1280);
|
|
conversion_impls!(U640, U1344);
|
|
base_impls!(U704, 11);
|
|
random_impls!(U704, UniformU704);
|
|
subtraction_impls!(U704, 11);
|
|
addition_impls!(U768, U832);
|
|
base_impls!(U768, 12);
|
|
random_impls!(U768, UniformU768);
|
|
div_impls!(U768, U1536);
|
|
multiply_impls!(U768, U1536);
|
|
scale_impls!(U768, U832);
|
|
shift_impls!(U768, 12);
|
|
square_impls!(U768, U1536, 768);
|
|
subtraction_impls!(U768, 12);
|
|
conversion_impls!(U768, U832);
|
|
conversion_impls!(U768, U1536);
|
|
addition_impls!(U832, U896);
|
|
base_impls!(U832, 13);
|
|
random_impls!(U832, UniformU832);
|
|
barrett_impl!(BarrettU832, U832, U896, U1664, U1728);
|
|
div_impls!(U832, U1664);
|
|
multiply_impls!(U832, U1664);
|
|
scale_impls!(U832, U896);
|
|
shift_impls!(U832, 13);
|
|
square_impls!(U832, U1664, 832);
|
|
subtraction_impls!(U832, 13);
|
|
conversion_impls!(U832, U896);
|
|
conversion_impls!(U832, U1664);
|
|
conversion_impls!(U832, U1728);
|
|
addition_impls!(U896, U960);
|
|
base_impls!(U896, 14);
|
|
random_impls!(U896, UniformU896);
|
|
div_impls!(U896, U1792);
|
|
multiply_impls!(U896, U1792);
|
|
scale_impls!(U896, U960);
|
|
shift_impls!(U896, 14);
|
|
square_impls!(U896, U1792, 896);
|
|
subtraction_impls!(U896, 14);
|
|
conversion_impls!(U896, U960);
|
|
conversion_impls!(U896, U1664);
|
|
conversion_impls!(U896, U1728);
|
|
conversion_impls!(U896, U1792);
|
|
conversion_impls!(U896, U1856);
|
|
addition_impls!(U960, U1024);
|
|
base_impls!(U960, 15);
|
|
random_impls!(U960, UniformU960);
|
|
div_impls!(U960, U1920);
|
|
multiply_impls!(U960, U1920);
|
|
scale_impls!(U960, U1024);
|
|
subtraction_impls!(U960, 15);
|
|
conversion_impls!(U960, U1024);
|
|
conversion_impls!(U960, U1920);
|
|
addition_impls!(U1024, U1088);
|
|
base_impls!(U1024, 16);
|
|
random_impls!(U1024, UniformU1024);
|
|
barrett_impl!(BarrettU1024, U1024, U1088, U2048, U2112);
|
|
div_impls!(U1024, U2048);
|
|
modexp_impls!(U1024, U1024);
|
|
modexp_impls!(U1024, BarrettU1024);
|
|
modmul_impls!(U1024, U2048, BarrettU1024);
|
|
modsq_impls!(U1024, U2048, BarrettU1024);
|
|
multiply_impls!(U1024, U2048);
|
|
scale_impls!(U1024, U1088);
|
|
shift_impls!(U1024, 16);
|
|
square_impls!(U1024, U2048, 1024);
|
|
subtraction_impls!(U1024, 16);
|
|
conversion_impls!(U1024, U1088);
|
|
conversion_impls!(U1024, U1152);
|
|
conversion_impls!(U1024, U2048);
|
|
conversion_impls!(U1024, U2112);
|
|
conversion_impls!(U1024, U4224);
|
|
sqrt_impls!(U1024);
|
|
prime_gen_impls!(U1024);
|
|
addition_impls!(U1088, U1152);
|
|
base_impls!(U1088, 17);
|
|
random_impls!(U1088, UniformU1088);
|
|
div_impls!(U1088, U2176);
|
|
multiply_impls!(U1088, U2176);
|
|
scale_impls!(U1088, U1152);
|
|
shift_impls!(U1088, 17);
|
|
square_impls!(U1088, U2176, 1088);
|
|
subtraction_impls!(U1088, 17);
|
|
conversion_impls!(U1088, U1152);
|
|
conversion_impls!(U1088, U2048);
|
|
conversion_impls!(U1088, U2112);
|
|
conversion_impls!(U1088, U2176);
|
|
conversion_impls!(U1088, U2240);
|
|
addition_impls!(U1152, U1216);
|
|
base_impls!(U1152, 18);
|
|
random_impls!(U1152, UniformU1152);
|
|
div_impls!(U1152, U2304);
|
|
multiply_impls!(U1152, U2304);
|
|
scale_impls!(U1152, U1216);
|
|
shift_impls!(U1152, 18);
|
|
square_impls!(U1152, U2304, 1152);
|
|
subtraction_impls!(U1152, 18);
|
|
conversion_impls!(U1152, U1216);
|
|
conversion_impls!(U1152, U2304);
|
|
addition_impls!(U1216, U1280);
|
|
base_impls!(U1216, 19);
|
|
random_impls!(U1216, UniformU1216);
|
|
barrett_impl!(BarrettU1216, U1216, U1280, U2432, U2496);
|
|
div_impls!(U1216, U2432);
|
|
multiply_impls!(U1216, U2432);
|
|
scale_impls!(U1216, U1280);
|
|
shift_impls!(U1216, 19);
|
|
square_impls!(U1216, U2432, 1216);
|
|
subtraction_impls!(U1216, 19);
|
|
conversion_impls!(U1216, U1280);
|
|
conversion_impls!(U1216, U2432);
|
|
conversion_impls!(U1216, U2496);
|
|
addition_impls!(U1280, U1344);
|
|
base_impls!(U1280, 20);
|
|
random_impls!(U1280, UniformU1280);
|
|
div_impls!(U1280, U2560);
|
|
multiply_impls!(U1280, U2560);
|
|
scale_impls!(U1280, U1344);
|
|
shift_impls!(U1280, 20);
|
|
square_impls!(U1280, U2560, 1280);
|
|
subtraction_impls!(U1280, 20);
|
|
conversion_impls!(U1280, U1344);
|
|
conversion_impls!(U1280, U2432);
|
|
conversion_impls!(U1280, U2496);
|
|
conversion_impls!(U1280, U2560);
|
|
conversion_impls!(U1280, U2624);
|
|
base_impls!(U1344, 21);
|
|
random_impls!(U1344, UniformU1344);
|
|
subtraction_impls!(U1344, 21);
|
|
base_impls!(U1536, 24);
|
|
random_impls!(U1536, UniformU1536);
|
|
barrett_impl!(BarrettU1536, U1536, U1600, U3072, U3136);
|
|
div_impls!(U1536, U3072);
|
|
modexp_impls!(U1536, U1536);
|
|
modexp_impls!(U1536, BarrettU1536);
|
|
modmul_impls!(U1536, U3072, BarrettU1536);
|
|
modsq_impls!(U1536, U3072, BarrettU1536);
|
|
multiply_impls!(U1536, U3072);
|
|
scale_impls!(U1536, U1600);
|
|
shift_impls!(U1536, 24);
|
|
square_impls!(U1536, U3072, 1536);
|
|
subtraction_impls!(U1536, 24);
|
|
conversion_impls!(U1536, U1600);
|
|
conversion_impls!(U1536, U3072);
|
|
conversion_impls!(U1536, U3136);
|
|
prime_gen_impls!(U1536);
|
|
addition_impls!(U1600, U1664);
|
|
base_impls!(U1600, 25);
|
|
random_impls!(U1600, UniformU1600);
|
|
div_impls!(U1600, U3200);
|
|
multiply_impls!(U1600, U3200);
|
|
scale_impls!(U1600, U1664);
|
|
shift_impls!(U1600, 25);
|
|
square_impls!(U1600, U3200, 1600);
|
|
subtraction_impls!(U1600, 25);
|
|
conversion_impls!(U1600, U1664);
|
|
conversion_impls!(U1600, U3072);
|
|
conversion_impls!(U1600, U3136);
|
|
conversion_impls!(U1600, U3200);
|
|
conversion_impls!(U1600, U3264);
|
|
addition_impls!(U1664, U1728);
|
|
base_impls!(U1664, 26);
|
|
random_impls!(U1664, UniformU1664);
|
|
div_impls!(U1664, U3328);
|
|
multiply_impls!(U1664, U3328);
|
|
scale_impls!(U1664, U1728);
|
|
shift_impls!(U1664, 26);
|
|
subtraction_impls!(U1664, 26);
|
|
conversion_impls!(U1664, U1728);
|
|
conversion_impls!(U1664, U3328);
|
|
addition_impls!(U1728, U1792);
|
|
base_impls!(U1728, 27);
|
|
random_impls!(U1728, UniformU1728);
|
|
div_impls!(U1728, U3456);
|
|
multiply_impls!(U1728, U3456);
|
|
scale_impls!(U1728, U1792);
|
|
subtraction_impls!(U1728, 27);
|
|
conversion_impls!(U1728, U1792);
|
|
conversion_impls!(U1728, U3456);
|
|
addition_impls!(U1792, U1856);
|
|
base_impls!(U1792, 28);
|
|
random_impls!(U1792, UniformU1792);
|
|
shift_impls!(U1792, 28);
|
|
subtraction_impls!(U1792, 28);
|
|
conversion_impls!(U1792, U1856);
|
|
base_impls!(U1856, 29);
|
|
random_impls!(U1856, UniformU1856);
|
|
subtraction_impls!(U1856, 29);
|
|
base_impls!(U1920, 30);
|
|
random_impls!(U1920, UniformU1920);
|
|
subtraction_impls!(U1920, 30);
|
|
addition_impls!(U2048, U2112);
|
|
base_impls!(U2048, 32);
|
|
random_impls!(U2048, UniformU2048);
|
|
barrett_impl!(BarrettU2048, U2048, U2112, U4096, U4160);
|
|
div_impls!(U2048, U4096);
|
|
modexp_impls!(U2048, U2048);
|
|
modexp_impls!(U2048, BarrettU2048);
|
|
modmul_impls!(U2048, U4096, BarrettU2048);
|
|
modsq_impls!(U2048, U4096, BarrettU2048);
|
|
multiply_impls!(U2048, U4096);
|
|
scale_impls!(U2048, U2112);
|
|
shift_impls!(U2048, 32);
|
|
square_impls!(U2048, U4096, 2048);
|
|
subtraction_impls!(U2048, 32);
|
|
conversion_impls!(U2048, U2112);
|
|
conversion_impls!(U2048, U2176);
|
|
conversion_impls!(U2048, U4096);
|
|
conversion_impls!(U2048, U4160);
|
|
conversion_impls!(U2048, U8320);
|
|
sqrt_impls!(U2048);
|
|
prime_gen_impls!(U2048);
|
|
addition_impls!(U2112, U2176);
|
|
base_impls!(U2112, 33);
|
|
random_impls!(U2112, UniformU2112);
|
|
div_impls!(U2112, U4224);
|
|
multiply_impls!(U2112, U4224);
|
|
scale_impls!(U2112, U2176);
|
|
shift_impls!(U2112, 33);
|
|
square_impls!(U2112, U4224, 2112);
|
|
subtraction_impls!(U2112, 33);
|
|
conversion_impls!(U2112, U2176);
|
|
conversion_impls!(U2112, U4096);
|
|
conversion_impls!(U2112, U4160);
|
|
conversion_impls!(U2112, U4224);
|
|
conversion_impls!(U2112, U4288);
|
|
addition_impls!(U2176, U2240);
|
|
base_impls!(U2176, 34);
|
|
random_impls!(U2176, UniformU2176);
|
|
shift_impls!(U2176, 34);
|
|
subtraction_impls!(U2176, 34);
|
|
conversion_impls!(U2176, U2240);
|
|
base_impls!(U2240, 35);
|
|
random_impls!(U2240, UniformU2240);
|
|
subtraction_impls!(U2240, 35);
|
|
base_impls!(U2304, 36);
|
|
random_impls!(U2304, UniformU2304);
|
|
div_impls!(U2304, U4608);
|
|
multiply_impls!(U2304, U4608);
|
|
scale_impls!(U2304, U2368);
|
|
subtraction_impls!(U2304, 36);
|
|
conversion_impls!(U2304, U4608);
|
|
base_impls!(U2368, 37);
|
|
random_impls!(U2368, UniformU2368);
|
|
addition_impls!(U2432, U2496);
|
|
base_impls!(U2432, 38);
|
|
random_impls!(U2432, UniformU2432);
|
|
div_impls!(U2432, U4864);
|
|
multiply_impls!(U2432, U4864);
|
|
scale_impls!(U2432, U2496);
|
|
shift_impls!(U2432, 38);
|
|
subtraction_impls!(U2432, 38);
|
|
conversion_impls!(U2432, U2496);
|
|
conversion_impls!(U2432, U4864);
|
|
addition_impls!(U2496, U2560);
|
|
base_impls!(U2496, 39);
|
|
random_impls!(U2496, UniformU2496);
|
|
div_impls!(U2496, U4992);
|
|
multiply_impls!(U2496, U4992);
|
|
scale_impls!(U2496, U2560);
|
|
subtraction_impls!(U2496, 39);
|
|
conversion_impls!(U2496, U2560);
|
|
conversion_impls!(U2496, U4992);
|
|
addition_impls!(U2560, U2624);
|
|
base_impls!(U2560, 40);
|
|
random_impls!(U2560, UniformU2560);
|
|
shift_impls!(U2560, 40);
|
|
subtraction_impls!(U2560, 40);
|
|
conversion_impls!(U2560, U2624);
|
|
base_impls!(U2624, 41);
|
|
random_impls!(U2624, UniformU2624);
|
|
subtraction_impls!(U2624, 41);
|
|
addition_impls!(U3072, U3136);
|
|
base_impls!(U3072, 48);
|
|
random_impls!(U3072, UniformU3072);
|
|
barrett_impl!(BarrettU3072, U3072, U3136, U6144, U6208);
|
|
div_impls!(U3072, U6144);
|
|
modexp_impls!(U3072, U3072);
|
|
modexp_impls!(U3072, BarrettU3072);
|
|
modmul_impls!(U3072, U6144, BarrettU3072);
|
|
modsq_impls!(U3072, U6144, BarrettU3072);
|
|
multiply_impls!(U3072, U6144);
|
|
scale_impls!(U3072, U3136);
|
|
shift_impls!(U3072, 48);
|
|
square_impls!(U3072, U6144, 3072);
|
|
subtraction_impls!(U3072, 48);
|
|
conversion_impls!(U3072, U3136);
|
|
conversion_impls!(U3072, U3200);
|
|
conversion_impls!(U3072, U6144);
|
|
conversion_impls!(U3072, U6208);
|
|
conversion_impls!(U3072, U12416);
|
|
sqrt_impls!(U3072);
|
|
prime_gen_impls!(U3072);
|
|
addition_impls!(U3136, U3200);
|
|
base_impls!(U3136, 49);
|
|
random_impls!(U3136, UniformU3136);
|
|
div_impls!(U3136, U6272);
|
|
multiply_impls!(U3136, U6272);
|
|
scale_impls!(U3136, U3200);
|
|
shift_impls!(U3136, 49);
|
|
square_impls!(U3136, U6272, 3136);
|
|
subtraction_impls!(U3136, 49);
|
|
conversion_impls!(U3136, U3200);
|
|
conversion_impls!(U3136, U6144);
|
|
conversion_impls!(U3136, U6208);
|
|
conversion_impls!(U3136, U6272);
|
|
conversion_impls!(U3136, U6336);
|
|
addition_impls!(U3200, U3264);
|
|
base_impls!(U3200, 50);
|
|
random_impls!(U3200, UniformU3200);
|
|
shift_impls!(U3200, 50);
|
|
subtraction_impls!(U3200, 50);
|
|
conversion_impls!(U3200, U3264);
|
|
base_impls!(U3264, 51);
|
|
random_impls!(U3264, UniformU3264);
|
|
subtraction_impls!(U3264, 51);
|
|
base_impls!(U3328, 52);
|
|
random_impls!(U3328, UniformU3328);
|
|
subtraction_impls!(U3328, 52);
|
|
base_impls!(U3456, 54);
|
|
random_impls!(U3456, UniformU3456);
|
|
subtraction_impls!(U3456, 54);
|
|
addition_impls!(U4096, U4160);
|
|
base_impls!(U4096, 64);
|
|
random_impls!(U4096, UniformU4096);
|
|
barrett_impl!(BarrettU4096, U4096, U4160, U8192, U8256);
|
|
div_impls!(U4096, U8192);
|
|
modexp_impls!(U4096, U4096);
|
|
modexp_impls!(U4096, BarrettU4096);
|
|
modmul_impls!(U4096, U8192, BarrettU4096);
|
|
modsq_impls!(U4096, U8192, BarrettU4096);
|
|
multiply_impls!(U4096, U8192);
|
|
scale_impls!(U4096, U4160);
|
|
shift_impls!(U4096, 64);
|
|
square_impls!(U4096, U8192, 4096);
|
|
subtraction_impls!(U4096, 64);
|
|
conversion_impls!(U4096, U4160);
|
|
conversion_impls!(U4096, U8192);
|
|
conversion_impls!(U4096, U8256);
|
|
prime_gen_impls!(U4096);
|
|
addition_impls!(U4160, U4224);
|
|
base_impls!(U4160, 65);
|
|
random_impls!(U4160, UniformU4160);
|
|
div_impls!(U4160, U8320);
|
|
multiply_impls!(U4160, U8320);
|
|
scale_impls!(U4160, U4224);
|
|
shift_impls!(U4160, 65);
|
|
square_impls!(U4160, U8320, 4160);
|
|
subtraction_impls!(U4160, 65);
|
|
conversion_impls!(U4160, U4224);
|
|
conversion_impls!(U4160, U8192);
|
|
conversion_impls!(U4160, U8256);
|
|
conversion_impls!(U4160, U8320);
|
|
conversion_impls!(U4160, U8384);
|
|
addition_impls!(U4224, U4288);
|
|
base_impls!(U4224, 66);
|
|
random_impls!(U4224, UniformU4224);
|
|
div_impls!(U4224, U8448);
|
|
multiply_impls!(U4224, U8448);
|
|
scale_impls!(U4224, U4288);
|
|
shift_impls!(U4224, 66);
|
|
subtraction_impls!(U4224, 66);
|
|
conversion_impls!(U4224, U4288);
|
|
conversion_impls!(U4224, U8448);
|
|
base_impls!(U4288, 67);
|
|
random_impls!(U4288, UniformU4288);
|
|
subtraction_impls!(U4288, 67);
|
|
base_impls!(U4608, 72);
|
|
random_impls!(U4608, UniformU4608);
|
|
subtraction_impls!(U4608, 72);
|
|
base_impls!(U4864, 76);
|
|
random_impls!(U4864, UniformU4864);
|
|
subtraction_impls!(U4864, 76);
|
|
base_impls!(U4992, 78);
|
|
random_impls!(U4992, UniformU4992);
|
|
subtraction_impls!(U4992, 78);
|
|
addition_impls!(U6144, U6208);
|
|
base_impls!(U6144, 96);
|
|
random_impls!(U6144, UniformU6144);
|
|
div_impls!(U6144, U12288);
|
|
multiply_impls!(U6144, U12288);
|
|
scale_impls!(U6144, U6208);
|
|
shift_impls!(U6144, 96);
|
|
subtraction_impls!(U6144, 96);
|
|
conversion_impls!(U6144, U6208);
|
|
conversion_impls!(U6144, U12288);
|
|
addition_impls!(U6208, U6272);
|
|
base_impls!(U6208, 97);
|
|
random_impls!(U6208, UniformU6208);
|
|
div_impls!(U6208, U12416);
|
|
multiply_impls!(U6208, U12416);
|
|
scale_impls!(U6208, U6272);
|
|
subtraction_impls!(U6208, 97);
|
|
conversion_impls!(U6208, U6272);
|
|
conversion_impls!(U6208, U12416);
|
|
addition_impls!(U6272, U6336);
|
|
base_impls!(U6272, 98);
|
|
random_impls!(U6272, UniformU6272);
|
|
shift_impls!(U6272, 98);
|
|
subtraction_impls!(U6272, 98);
|
|
conversion_impls!(U6272, U6336);
|
|
base_impls!(U6336, 99);
|
|
random_impls!(U6336, UniformU6336);
|
|
subtraction_impls!(U6336, 99);
|
|
base_impls!(U7680, 120);
|
|
random_impls!(U7680, UniformU7680);
|
|
barrett_impl!(BarrettU7680, U7680, U7744, U15360, U15424);
|
|
div_impls!(U7680, U15360);
|
|
modexp_impls!(U7680, U7680);
|
|
modexp_impls!(U7680, BarrettU7680);
|
|
modmul_impls!(U7680, U15360, BarrettU7680);
|
|
modsq_impls!(U7680, U15360, BarrettU7680);
|
|
multiply_impls!(U7680, U15360);
|
|
scale_impls!(U7680, U7744);
|
|
shift_impls!(U7680, 120);
|
|
square_impls!(U7680, U15360, 7680);
|
|
subtraction_impls!(U7680, 120);
|
|
conversion_impls!(U7680, U7744);
|
|
conversion_impls!(U7680, U15360);
|
|
conversion_impls!(U7680, U15424);
|
|
prime_gen_impls!(U7680);
|
|
addition_impls!(U7744, U7808);
|
|
base_impls!(U7744, 121);
|
|
random_impls!(U7744, UniformU7744);
|
|
div_impls!(U7744, U15488);
|
|
multiply_impls!(U7744, U15488);
|
|
scale_impls!(U7744, U7808);
|
|
shift_impls!(U7744, 121);
|
|
square_impls!(U7744, U15488, 7744);
|
|
subtraction_impls!(U7744, 121);
|
|
conversion_impls!(U7744, U7808);
|
|
conversion_impls!(U7744, U15360);
|
|
conversion_impls!(U7744, U15424);
|
|
conversion_impls!(U7744, U15488);
|
|
conversion_impls!(U7744, U15552);
|
|
base_impls!(U7808, 122);
|
|
random_impls!(U7808, UniformU7808);
|
|
subtraction_impls!(U7808, 122);
|
|
base_impls!(U8192, 128);
|
|
random_impls!(U8192, UniformU8192);
|
|
barrett_impl!(BarrettU8192, U8192, U8256, U16384, U16448);
|
|
div_impls!(U8192, U16384);
|
|
modexp_impls!(U8192, U8192);
|
|
modexp_impls!(U8192, BarrettU8192);
|
|
modmul_impls!(U8192, U16384, BarrettU8192);
|
|
modsq_impls!(U8192, U16384, BarrettU8192);
|
|
multiply_impls!(U8192, U16384);
|
|
scale_impls!(U8192, U8256);
|
|
shift_impls!(U8192, 128);
|
|
square_impls!(U8192, U16384, 8192);
|
|
subtraction_impls!(U8192, 128);
|
|
conversion_impls!(U8192, U8256);
|
|
conversion_impls!(U8192, U16384);
|
|
conversion_impls!(U8192, U16448);
|
|
addition_impls!(U8256, U8320);
|
|
base_impls!(U8256, 129);
|
|
random_impls!(U8256, UniformU8256);
|
|
div_impls!(U8256, U16512);
|
|
multiply_impls!(U8256, U16512);
|
|
scale_impls!(U8256, U8320);
|
|
shift_impls!(U8256, 129);
|
|
square_impls!(U8256, U16512, 8256);
|
|
subtraction_impls!(U8256, 129);
|
|
conversion_impls!(U8256, U8320);
|
|
conversion_impls!(U8256, U16384);
|
|
conversion_impls!(U8256, U16448);
|
|
conversion_impls!(U8256, U16512);
|
|
conversion_impls!(U8256, U16576);
|
|
addition_impls!(U8320, U8384);
|
|
base_impls!(U8320, 130);
|
|
random_impls!(U8320, UniformU8320);
|
|
div_impls!(U8320, U16640);
|
|
multiply_impls!(U8320, U16640);
|
|
scale_impls!(U8320, U8384);
|
|
shift_impls!(U8320, 130);
|
|
subtraction_impls!(U8320, 130);
|
|
conversion_impls!(U8320, U8384);
|
|
conversion_impls!(U8320, U16640);
|
|
base_impls!(U8384, 131);
|
|
random_impls!(U8384, UniformU8384);
|
|
subtraction_impls!(U8384, 131);
|
|
base_impls!(U8448, 132);
|
|
random_impls!(U8448, UniformU8448);
|
|
subtraction_impls!(U8448, 132);
|
|
base_impls!(U12288, 192);
|
|
random_impls!(U12288, UniformU12288);
|
|
subtraction_impls!(U12288, 192);
|
|
base_impls!(U12416, 194);
|
|
random_impls!(U12416, UniformU12416);
|
|
div_impls!(U12416, U24832);
|
|
multiply_impls!(U12416, U24832);
|
|
scale_impls!(U12416, U12480);
|
|
subtraction_impls!(U12416, 194);
|
|
conversion_impls!(U12416, U24832);
|
|
base_impls!(U12480, 195);
|
|
random_impls!(U12480, UniformU12480);
|
|
base_impls!(U15360, 240);
|
|
random_impls!(U15360, UniformU15360);
|
|
barrett_impl!(BarrettU15360, U15360, U15424, U30720, U30784);
|
|
div_impls!(U15360, U30720);
|
|
modexp_impls!(U15360, U15360);
|
|
modexp_impls!(U15360, BarrettU15360);
|
|
modmul_impls!(U15360, U30720, BarrettU15360);
|
|
modsq_impls!(U15360, U30720, BarrettU15360);
|
|
multiply_impls!(U15360, U30720);
|
|
scale_impls!(U15360, U15424);
|
|
shift_impls!(U15360, 240);
|
|
square_impls!(U15360, U30720, 15360);
|
|
subtraction_impls!(U15360, 240);
|
|
conversion_impls!(U15360, U15424);
|
|
conversion_impls!(U15360, U30720);
|
|
conversion_impls!(U15360, U30784);
|
|
addition_impls!(U15424, U15488);
|
|
base_impls!(U15424, 241);
|
|
random_impls!(U15424, UniformU15424);
|
|
div_impls!(U15424, U30848);
|
|
multiply_impls!(U15424, U30848);
|
|
scale_impls!(U15424, U15488);
|
|
shift_impls!(U15424, 241);
|
|
square_impls!(U15424, U30848, 15424);
|
|
subtraction_impls!(U15424, 241);
|
|
conversion_impls!(U15424, U15488);
|
|
conversion_impls!(U15424, U30720);
|
|
conversion_impls!(U15424, U30784);
|
|
conversion_impls!(U15424, U30848);
|
|
conversion_impls!(U15424, U30912);
|
|
addition_impls!(U15488, U15552);
|
|
base_impls!(U15488, 242);
|
|
random_impls!(U15488, UniformU15488);
|
|
shift_impls!(U15488, 242);
|
|
subtraction_impls!(U15488, 242);
|
|
conversion_impls!(U15488, U15552);
|
|
base_impls!(U15552, 243);
|
|
random_impls!(U15552, UniformU15552);
|
|
subtraction_impls!(U15552, 243);
|
|
base_impls!(U16384, 256);
|
|
random_impls!(U16384, UniformU16384);
|
|
div_impls!(U16384, U32768);
|
|
multiply_impls!(U16384, U32768);
|
|
scale_impls!(U16384, U16448);
|
|
shift_impls!(U16384, 256);
|
|
subtraction_impls!(U16384, 256);
|
|
conversion_impls!(U16384, U16448);
|
|
conversion_impls!(U16384, U32768);
|
|
addition_impls!(U16448, U16512);
|
|
base_impls!(U16448, 257);
|
|
random_impls!(U16448, UniformU16448);
|
|
div_impls!(U16448, U32896);
|
|
multiply_impls!(U16448, U32896);
|
|
scale_impls!(U16448, U16512);
|
|
subtraction_impls!(U16448, 257);
|
|
conversion_impls!(U16448, U16512);
|
|
conversion_impls!(U16448, U32896);
|
|
addition_impls!(U16512, U16576);
|
|
base_impls!(U16512, 258);
|
|
random_impls!(U16512, UniformU16512);
|
|
shift_impls!(U16512, 258);
|
|
subtraction_impls!(U16512, 258);
|
|
conversion_impls!(U16512, U16576);
|
|
base_impls!(U16576, 259);
|
|
random_impls!(U16576, UniformU16576);
|
|
subtraction_impls!(U16576, 259);
|
|
base_impls!(U16640, 260);
|
|
random_impls!(U16640, UniformU16640);
|
|
subtraction_impls!(U16640, 260);
|
|
base_impls!(U24832, 388);
|
|
random_impls!(U24832, UniformU24832);
|
|
subtraction_impls!(U24832, 388);
|
|
base_impls!(U30720, 480);
|
|
random_impls!(U30720, UniformU30720);
|
|
div_impls!(U30720, U61440);
|
|
multiply_impls!(U30720, U61440);
|
|
scale_impls!(U30720, U30784);
|
|
shift_impls!(U30720, 480);
|
|
subtraction_impls!(U30720, 480);
|
|
conversion_impls!(U30720, U30784);
|
|
conversion_impls!(U30720, U61440);
|
|
addition_impls!(U30784, U30848);
|
|
base_impls!(U30784, 481);
|
|
random_impls!(U30784, UniformU30784);
|
|
div_impls!(U30784, U61568);
|
|
multiply_impls!(U30784, U61568);
|
|
scale_impls!(U30784, U30848);
|
|
subtraction_impls!(U30784, 481);
|
|
conversion_impls!(U30784, U30848);
|
|
conversion_impls!(U30784, U61568);
|
|
addition_impls!(U30848, U30912);
|
|
base_impls!(U30848, 482);
|
|
random_impls!(U30848, UniformU30848);
|
|
shift_impls!(U30848, 482);
|
|
subtraction_impls!(U30848, 482);
|
|
conversion_impls!(U30848, U30912);
|
|
base_impls!(U30912, 483);
|
|
random_impls!(U30912, UniformU30912);
|
|
subtraction_impls!(U30912, 483);
|
|
base_impls!(U32768, 512);
|
|
random_impls!(U32768, UniformU32768);
|
|
subtraction_impls!(U32768, 512);
|
|
base_impls!(U32896, 514);
|
|
random_impls!(U32896, UniformU32896);
|
|
subtraction_impls!(U32896, 514);
|
|
base_impls!(U61440, 960);
|
|
random_impls!(U61440, UniformU61440);
|
|
subtraction_impls!(U61440, 960);
|
|
base_impls!(U61568, 962);
|
|
random_impls!(U61568, UniformU61568);
|
|
subtraction_impls!(U61568, 962);
|
|
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
mod base {
|
|
use super::super::*;
|
|
use testing::{build_test_path,run_test};
|
|
|
|
generate_base_tests!(U192, u192);
|
|
generate_base_tests!(U256, u256);
|
|
generate_base_tests!(U320, u320);
|
|
generate_base_tests!(U384, u384);
|
|
generate_base_tests!(U448, u448);
|
|
generate_base_tests!(U512, u512);
|
|
generate_base_tests!(U576, u576);
|
|
generate_base_tests!(U640, u640);
|
|
generate_base_tests!(U704, u704);
|
|
generate_base_tests!(U768, u768);
|
|
generate_base_tests!(U832, u832);
|
|
generate_base_tests!(U896, u896);
|
|
generate_base_tests!(U960, u960);
|
|
generate_base_tests!(U1024, u1024);
|
|
generate_base_tests!(U1088, u1088);
|
|
generate_base_tests!(U1152, u1152);
|
|
generate_base_tests!(U1216, u1216);
|
|
generate_base_tests!(U1280, u1280);
|
|
generate_base_tests!(U1344, u1344);
|
|
generate_base_tests!(U1536, u1536);
|
|
generate_base_tests!(U1600, u1600);
|
|
generate_base_tests!(U1664, u1664);
|
|
generate_base_tests!(U1728, u1728);
|
|
generate_base_tests!(U1792, u1792);
|
|
generate_base_tests!(U1856, u1856);
|
|
generate_base_tests!(U1920, u1920);
|
|
generate_base_tests!(U2048, u2048);
|
|
generate_base_tests!(U2112, u2112);
|
|
generate_base_tests!(U2176, u2176);
|
|
generate_base_tests!(U2240, u2240);
|
|
generate_base_tests!(U2304, u2304);
|
|
generate_base_tests!(U2368, u2368);
|
|
generate_base_tests!(U2432, u2432);
|
|
generate_base_tests!(U2496, u2496);
|
|
generate_base_tests!(U2560, u2560);
|
|
generate_base_tests!(U2624, u2624);
|
|
generate_base_tests!(U3072, u3072);
|
|
generate_base_tests!(U3136, u3136);
|
|
generate_base_tests!(U3200, u3200);
|
|
generate_base_tests!(U3264, u3264);
|
|
generate_base_tests!(U3328, u3328);
|
|
generate_base_tests!(U3456, u3456);
|
|
generate_base_tests!(U4096, u4096);
|
|
generate_base_tests!(U4160, u4160);
|
|
generate_base_tests!(U4224, u4224);
|
|
generate_base_tests!(U4288, u4288);
|
|
generate_base_tests!(U4608, u4608);
|
|
generate_base_tests!(U4864, u4864);
|
|
generate_base_tests!(U4992, u4992);
|
|
generate_base_tests!(U6144, u6144);
|
|
generate_base_tests!(U6208, u6208);
|
|
generate_base_tests!(U6272, u6272);
|
|
generate_base_tests!(U6336, u6336);
|
|
generate_base_tests!(U7680, u7680);
|
|
generate_base_tests!(U7744, u7744);
|
|
generate_base_tests!(U7808, u7808);
|
|
generate_base_tests!(U8192, u8192);
|
|
generate_base_tests!(U8256, u8256);
|
|
generate_base_tests!(U8320, u8320);
|
|
generate_base_tests!(U8384, u8384);
|
|
generate_base_tests!(U8448, u8448);
|
|
generate_base_tests!(U12288, u12288);
|
|
generate_base_tests!(U12416, u12416);
|
|
generate_base_tests!(U12480, u12480);
|
|
generate_base_tests!(U15360, u15360);
|
|
generate_base_tests!(U15424, u15424);
|
|
generate_base_tests!(U15488, u15488);
|
|
generate_base_tests!(U15552, u15552);
|
|
generate_base_tests!(ignore U16384, u16384);
|
|
generate_base_tests!(ignore U16448, u16448);
|
|
generate_base_tests!(ignore U16512, u16512);
|
|
generate_base_tests!(ignore U16576, u16576);
|
|
generate_base_tests!(ignore U16640, u16640);
|
|
generate_base_tests!(ignore U24832, u24832);
|
|
generate_base_tests!(ignore U30720, u30720);
|
|
generate_base_tests!(ignore U30784, u30784);
|
|
generate_base_tests!(ignore U30848, u30848);
|
|
generate_base_tests!(ignore U30912, u30912);
|
|
generate_base_tests!(ignore U32768, u32768);
|
|
generate_base_tests!(ignore U32896, u32896);
|
|
generate_base_tests!(ignore U61440, u61440);
|
|
generate_base_tests!(ignore U61568, u61568);
|
|
}
|
|
mod conversion {
|
|
generate_conversion_tests!(U192, u192);
|
|
generate_conversion_tests!(U256, u256);
|
|
generate_conversion_tests!(U320, u320);
|
|
generate_conversion_tests!(U384, u384);
|
|
generate_conversion_tests!(U448, u448);
|
|
generate_conversion_tests!(U512, u512);
|
|
generate_conversion_tests!(U576, u576);
|
|
generate_conversion_tests!(U640, u640);
|
|
generate_conversion_tests!(U704, u704);
|
|
generate_conversion_tests!(U768, u768);
|
|
generate_conversion_tests!(U832, u832);
|
|
generate_conversion_tests!(U896, u896);
|
|
generate_conversion_tests!(U960, u960);
|
|
generate_conversion_tests!(U1024, u1024);
|
|
generate_conversion_tests!(U1088, u1088);
|
|
generate_conversion_tests!(U1152, u1152);
|
|
generate_conversion_tests!(U1216, u1216);
|
|
generate_conversion_tests!(U1280, u1280);
|
|
generate_conversion_tests!(U1344, u1344);
|
|
generate_conversion_tests!(U1536, u1536);
|
|
generate_conversion_tests!(U1600, u1600);
|
|
generate_conversion_tests!(U1664, u1664);
|
|
generate_conversion_tests!(U1728, u1728);
|
|
generate_conversion_tests!(U1792, u1792);
|
|
generate_conversion_tests!(U1856, u1856);
|
|
generate_conversion_tests!(U1920, u1920);
|
|
generate_conversion_tests!(U2048, u2048);
|
|
generate_conversion_tests!(U2112, u2112);
|
|
generate_conversion_tests!(U2176, u2176);
|
|
generate_conversion_tests!(U2240, u2240);
|
|
generate_conversion_tests!(U2304, u2304);
|
|
generate_conversion_tests!(U2368, u2368);
|
|
generate_conversion_tests!(U2432, u2432);
|
|
generate_conversion_tests!(U2496, u2496);
|
|
generate_conversion_tests!(U2560, u2560);
|
|
generate_conversion_tests!(U2624, u2624);
|
|
generate_conversion_tests!(U3072, u3072);
|
|
generate_conversion_tests!(U3136, u3136);
|
|
generate_conversion_tests!(U3200, u3200);
|
|
generate_conversion_tests!(U3264, u3264);
|
|
generate_conversion_tests!(U3328, u3328);
|
|
generate_conversion_tests!(U3456, u3456);
|
|
generate_conversion_tests!(U4096, u4096);
|
|
generate_conversion_tests!(U4160, u4160);
|
|
generate_conversion_tests!(U4224, u4224);
|
|
generate_conversion_tests!(U4288, u4288);
|
|
generate_conversion_tests!(U4608, u4608);
|
|
generate_conversion_tests!(U4864, u4864);
|
|
generate_conversion_tests!(U4992, u4992);
|
|
generate_conversion_tests!(U6144, u6144);
|
|
generate_conversion_tests!(U6208, u6208);
|
|
generate_conversion_tests!(U6272, u6272);
|
|
generate_conversion_tests!(U6336, u6336);
|
|
generate_conversion_tests!(U7680, u7680);
|
|
generate_conversion_tests!(U7744, u7744);
|
|
generate_conversion_tests!(U7808, u7808);
|
|
generate_conversion_tests!(U8192, u8192);
|
|
generate_conversion_tests!(U8256, u8256);
|
|
generate_conversion_tests!(U8320, u8320);
|
|
generate_conversion_tests!(U8384, u8384);
|
|
generate_conversion_tests!(U8448, u8448);
|
|
generate_conversion_tests!(U12288, u12288);
|
|
generate_conversion_tests!(U12416, u12416);
|
|
generate_conversion_tests!(U12480, u12480);
|
|
generate_conversion_tests!(U15360, u15360);
|
|
generate_conversion_tests!(U15424, u15424);
|
|
generate_conversion_tests!(U15488, u15488);
|
|
generate_conversion_tests!(U15552, u15552);
|
|
generate_conversion_tests!(U16384, u16384);
|
|
generate_conversion_tests!(U16448, u16448);
|
|
generate_conversion_tests!(U16512, u16512);
|
|
generate_conversion_tests!(U16576, u16576);
|
|
generate_conversion_tests!(U16640, u16640);
|
|
generate_conversion_tests!(U24832, u24832);
|
|
generate_conversion_tests!(U30720, u30720);
|
|
generate_conversion_tests!(U30784, u30784);
|
|
generate_conversion_tests!(U30848, u30848);
|
|
generate_conversion_tests!(U30912, u30912);
|
|
generate_conversion_tests!(U32768, u32768);
|
|
generate_conversion_tests!(U32896, u32896);
|
|
generate_conversion_tests!(U61440, u61440);
|
|
generate_conversion_tests!(U61568, u61568);
|
|
}
|
|
mod codec {
|
|
generate_codec_tests!(U192, u192);
|
|
generate_codec_tests!(U256, u256);
|
|
generate_codec_tests!(U320, u320);
|
|
generate_codec_tests!(U384, u384);
|
|
generate_codec_tests!(U448, u448);
|
|
generate_codec_tests!(U512, u512);
|
|
generate_codec_tests!(U576, u576);
|
|
generate_codec_tests!(U640, u640);
|
|
generate_codec_tests!(U704, u704);
|
|
generate_codec_tests!(U768, u768);
|
|
generate_codec_tests!(U832, u832);
|
|
generate_codec_tests!(U896, u896);
|
|
generate_codec_tests!(U960, u960);
|
|
generate_codec_tests!(U1024, u1024);
|
|
generate_codec_tests!(U1088, u1088);
|
|
generate_codec_tests!(U1152, u1152);
|
|
generate_codec_tests!(U1216, u1216);
|
|
generate_codec_tests!(U1280, u1280);
|
|
generate_codec_tests!(U1344, u1344);
|
|
generate_codec_tests!(U1536, u1536);
|
|
generate_codec_tests!(U1600, u1600);
|
|
generate_codec_tests!(U1664, u1664);
|
|
generate_codec_tests!(U1728, u1728);
|
|
generate_codec_tests!(U1792, u1792);
|
|
generate_codec_tests!(U1856, u1856);
|
|
generate_codec_tests!(U1920, u1920);
|
|
generate_codec_tests!(U2048, u2048);
|
|
generate_codec_tests!(U2112, u2112);
|
|
generate_codec_tests!(U2176, u2176);
|
|
generate_codec_tests!(U2240, u2240);
|
|
generate_codec_tests!(U2304, u2304);
|
|
generate_codec_tests!(U2368, u2368);
|
|
generate_codec_tests!(U2432, u2432);
|
|
generate_codec_tests!(U2496, u2496);
|
|
generate_codec_tests!(U2560, u2560);
|
|
generate_codec_tests!(U2624, u2624);
|
|
generate_codec_tests!(U3072, u3072);
|
|
generate_codec_tests!(U3136, u3136);
|
|
generate_codec_tests!(U3200, u3200);
|
|
generate_codec_tests!(U3264, u3264);
|
|
generate_codec_tests!(U3328, u3328);
|
|
generate_codec_tests!(U3456, u3456);
|
|
generate_codec_tests!(U4096, u4096);
|
|
generate_codec_tests!(U4160, u4160);
|
|
generate_codec_tests!(U4224, u4224);
|
|
generate_codec_tests!(U4288, u4288);
|
|
generate_codec_tests!(U4608, u4608);
|
|
generate_codec_tests!(U4864, u4864);
|
|
generate_codec_tests!(U4992, u4992);
|
|
generate_codec_tests!(U6144, u6144);
|
|
generate_codec_tests!(U6208, u6208);
|
|
generate_codec_tests!(U6272, u6272);
|
|
generate_codec_tests!(U6336, u6336);
|
|
generate_codec_tests!(U7680, u7680);
|
|
generate_codec_tests!(U7744, u7744);
|
|
generate_codec_tests!(U7808, u7808);
|
|
generate_codec_tests!(U8192, u8192);
|
|
generate_codec_tests!(U8256, u8256);
|
|
generate_codec_tests!(U8320, u8320);
|
|
generate_codec_tests!(U8384, u8384);
|
|
generate_codec_tests!(U8448, u8448);
|
|
generate_codec_tests!(U12288, u12288);
|
|
generate_codec_tests!(U12416, u12416);
|
|
generate_codec_tests!(U12480, u12480);
|
|
generate_codec_tests!(U15360, u15360);
|
|
generate_codec_tests!(U15424, u15424);
|
|
generate_codec_tests!(U15488, u15488);
|
|
generate_codec_tests!(U15552, u15552);
|
|
generate_codec_tests!(U16384, u16384);
|
|
generate_codec_tests!(U16448, u16448);
|
|
generate_codec_tests!(U16512, u16512);
|
|
generate_codec_tests!(U16576, u16576);
|
|
generate_codec_tests!(U16640, u16640);
|
|
generate_codec_tests!(U24832, u24832);
|
|
generate_codec_tests!(U30720, u30720);
|
|
generate_codec_tests!(U30784, u30784);
|
|
generate_codec_tests!(U30848, u30848);
|
|
generate_codec_tests!(U30912, u30912);
|
|
generate_codec_tests!(U32768, u32768);
|
|
generate_codec_tests!(U32896, u32896);
|
|
generate_codec_tests!(U61440, u61440);
|
|
generate_codec_tests!(U61568, u61568);
|
|
}
|
|
mod cmp {
|
|
use super::super::*;
|
|
use testing::{build_test_path,run_test};
|
|
|
|
generate_cmp_tests!(U192, u192);
|
|
generate_cmp_tests!(U256, u256);
|
|
generate_cmp_tests!(U320, u320);
|
|
generate_cmp_tests!(U384, u384);
|
|
generate_cmp_tests!(U448, u448);
|
|
generate_cmp_tests!(U512, u512);
|
|
generate_cmp_tests!(U576, u576);
|
|
generate_cmp_tests!(U640, u640);
|
|
generate_cmp_tests!(U704, u704);
|
|
generate_cmp_tests!(U768, u768);
|
|
generate_cmp_tests!(U832, u832);
|
|
generate_cmp_tests!(U896, u896);
|
|
generate_cmp_tests!(U960, u960);
|
|
generate_cmp_tests!(U1024, u1024);
|
|
generate_cmp_tests!(U1088, u1088);
|
|
generate_cmp_tests!(U1152, u1152);
|
|
generate_cmp_tests!(U1216, u1216);
|
|
generate_cmp_tests!(U1280, u1280);
|
|
generate_cmp_tests!(U1344, u1344);
|
|
generate_cmp_tests!(U1536, u1536);
|
|
generate_cmp_tests!(U1600, u1600);
|
|
generate_cmp_tests!(U1664, u1664);
|
|
generate_cmp_tests!(U1728, u1728);
|
|
generate_cmp_tests!(U1792, u1792);
|
|
generate_cmp_tests!(U1856, u1856);
|
|
generate_cmp_tests!(U1920, u1920);
|
|
generate_cmp_tests!(U2048, u2048);
|
|
generate_cmp_tests!(U2112, u2112);
|
|
generate_cmp_tests!(U2176, u2176);
|
|
generate_cmp_tests!(U2240, u2240);
|
|
generate_cmp_tests!(U2304, u2304);
|
|
generate_cmp_tests!(U2368, u2368);
|
|
generate_cmp_tests!(U2432, u2432);
|
|
generate_cmp_tests!(U2496, u2496);
|
|
generate_cmp_tests!(U2560, u2560);
|
|
generate_cmp_tests!(U2624, u2624);
|
|
generate_cmp_tests!(U3072, u3072);
|
|
generate_cmp_tests!(U3136, u3136);
|
|
generate_cmp_tests!(U3200, u3200);
|
|
generate_cmp_tests!(U3264, u3264);
|
|
generate_cmp_tests!(U3328, u3328);
|
|
generate_cmp_tests!(U3456, u3456);
|
|
generate_cmp_tests!(U4096, u4096);
|
|
generate_cmp_tests!(U4160, u4160);
|
|
generate_cmp_tests!(U4224, u4224);
|
|
generate_cmp_tests!(U4288, u4288);
|
|
generate_cmp_tests!(U4608, u4608);
|
|
generate_cmp_tests!(U4864, u4864);
|
|
generate_cmp_tests!(U4992, u4992);
|
|
generate_cmp_tests!(U6144, u6144);
|
|
generate_cmp_tests!(U6208, u6208);
|
|
generate_cmp_tests!(U6272, u6272);
|
|
generate_cmp_tests!(U6336, u6336);
|
|
generate_cmp_tests!(U7680, u7680);
|
|
generate_cmp_tests!(U7744, u7744);
|
|
generate_cmp_tests!(U7808, u7808);
|
|
generate_cmp_tests!(U8192, u8192);
|
|
generate_cmp_tests!(U8256, u8256);
|
|
generate_cmp_tests!(U8320, u8320);
|
|
generate_cmp_tests!(U8384, u8384);
|
|
generate_cmp_tests!(U8448, u8448);
|
|
generate_cmp_tests!(U12288, u12288);
|
|
generate_cmp_tests!(U12416, u12416);
|
|
generate_cmp_tests!(U12480, u12480);
|
|
generate_cmp_tests!(U15360, u15360);
|
|
generate_cmp_tests!(U15424, u15424);
|
|
generate_cmp_tests!(U15488, u15488);
|
|
generate_cmp_tests!(U15552, u15552);
|
|
generate_cmp_tests!(ignore U16384, u16384);
|
|
generate_cmp_tests!(ignore U16448, u16448);
|
|
generate_cmp_tests!(ignore U16512, u16512);
|
|
generate_cmp_tests!(ignore U16576, u16576);
|
|
generate_cmp_tests!(ignore U16640, u16640);
|
|
generate_cmp_tests!(ignore U24832, u24832);
|
|
generate_cmp_tests!(ignore U30720, u30720);
|
|
generate_cmp_tests!(ignore U30784, u30784);
|
|
generate_cmp_tests!(ignore U30848, u30848);
|
|
generate_cmp_tests!(ignore U30912, u30912);
|
|
generate_cmp_tests!(ignore U32768, u32768);
|
|
generate_cmp_tests!(ignore U32896, u32896);
|
|
generate_cmp_tests!(ignore U61440, u61440);
|
|
generate_cmp_tests!(ignore U61568, u61568);
|
|
}
|
|
mod sub {
|
|
use super::super::*;
|
|
use testing::{build_test_path,run_test};
|
|
|
|
generate_sub_tests!(U192, u192);
|
|
generate_sub_tests!(U256, u256);
|
|
generate_sub_tests!(U320, u320);
|
|
generate_sub_tests!(U384, u384);
|
|
generate_sub_tests!(U448, u448);
|
|
generate_sub_tests!(U512, u512);
|
|
generate_sub_tests!(U576, u576);
|
|
generate_sub_tests!(U640, u640);
|
|
generate_sub_tests!(U704, u704);
|
|
generate_sub_tests!(U768, u768);
|
|
generate_sub_tests!(U832, u832);
|
|
generate_sub_tests!(U896, u896);
|
|
generate_sub_tests!(U960, u960);
|
|
generate_sub_tests!(U1024, u1024);
|
|
generate_sub_tests!(U1088, u1088);
|
|
generate_sub_tests!(U1152, u1152);
|
|
generate_sub_tests!(U1216, u1216);
|
|
generate_sub_tests!(U1280, u1280);
|
|
generate_sub_tests!(U1344, u1344);
|
|
generate_sub_tests!(U1536, u1536);
|
|
generate_sub_tests!(U1600, u1600);
|
|
generate_sub_tests!(U1664, u1664);
|
|
generate_sub_tests!(U1728, u1728);
|
|
generate_sub_tests!(U1792, u1792);
|
|
generate_sub_tests!(U1856, u1856);
|
|
generate_sub_tests!(U1920, u1920);
|
|
generate_sub_tests!(U2048, u2048);
|
|
generate_sub_tests!(U2112, u2112);
|
|
generate_sub_tests!(U2176, u2176);
|
|
generate_sub_tests!(U2240, u2240);
|
|
generate_sub_tests!(U2304, u2304);
|
|
generate_sub_tests!(U2432, u2432);
|
|
generate_sub_tests!(U2496, u2496);
|
|
generate_sub_tests!(U2560, u2560);
|
|
generate_sub_tests!(U2624, u2624);
|
|
generate_sub_tests!(U3072, u3072);
|
|
generate_sub_tests!(U3136, u3136);
|
|
generate_sub_tests!(U3200, u3200);
|
|
generate_sub_tests!(U3264, u3264);
|
|
generate_sub_tests!(U3328, u3328);
|
|
generate_sub_tests!(U3456, u3456);
|
|
generate_sub_tests!(U4096, u4096);
|
|
generate_sub_tests!(U4160, u4160);
|
|
generate_sub_tests!(U4224, u4224);
|
|
generate_sub_tests!(U4288, u4288);
|
|
generate_sub_tests!(U4608, u4608);
|
|
generate_sub_tests!(U4864, u4864);
|
|
generate_sub_tests!(U4992, u4992);
|
|
generate_sub_tests!(U6144, u6144);
|
|
generate_sub_tests!(U6208, u6208);
|
|
generate_sub_tests!(U6272, u6272);
|
|
generate_sub_tests!(U6336, u6336);
|
|
generate_sub_tests!(U7680, u7680);
|
|
generate_sub_tests!(U7744, u7744);
|
|
generate_sub_tests!(U7808, u7808);
|
|
generate_sub_tests!(U8192, u8192);
|
|
generate_sub_tests!(U8256, u8256);
|
|
generate_sub_tests!(U8320, u8320);
|
|
generate_sub_tests!(U8384, u8384);
|
|
generate_sub_tests!(U8448, u8448);
|
|
generate_sub_tests!(ignore U12288, u12288);
|
|
generate_sub_tests!(ignore U12416, u12416);
|
|
generate_sub_tests!(ignore U15360, u15360);
|
|
generate_sub_tests!(ignore U15424, u15424);
|
|
generate_sub_tests!(ignore U15488, u15488);
|
|
generate_sub_tests!(ignore U15552, u15552);
|
|
generate_sub_tests!(ignore U16384, u16384);
|
|
generate_sub_tests!(ignore U16448, u16448);
|
|
generate_sub_tests!(ignore U16512, u16512);
|
|
generate_sub_tests!(ignore U16576, u16576);
|
|
generate_sub_tests!(ignore U16640, u16640);
|
|
generate_sub_tests!(ignore U24832, u24832);
|
|
generate_sub_tests!(ignore U30720, u30720);
|
|
generate_sub_tests!(ignore U30784, u30784);
|
|
generate_sub_tests!(ignore U30848, u30848);
|
|
generate_sub_tests!(ignore U30912, u30912);
|
|
generate_sub_tests!(ignore U32768, u32768);
|
|
generate_sub_tests!(ignore U32896, u32896);
|
|
generate_sub_tests!(ignore U61440, u61440);
|
|
generate_sub_tests!(ignore U61568, u61568);
|
|
}
|
|
mod shiftl {
|
|
use super::super::*;
|
|
use testing::{build_test_path,run_test};
|
|
|
|
generate_shiftl_tests!(U192, u192);
|
|
generate_shiftl_tests!(U256, u256);
|
|
generate_shiftl_tests!(U320, u320);
|
|
generate_shiftl_tests!(U384, u384);
|
|
generate_shiftl_tests!(U448, u448);
|
|
generate_shiftl_tests!(U512, u512);
|
|
generate_shiftl_tests!(U576, u576);
|
|
generate_shiftl_tests!(U640, u640);
|
|
generate_shiftl_tests!(U768, u768);
|
|
generate_shiftl_tests!(U832, u832);
|
|
generate_shiftl_tests!(U896, u896);
|
|
generate_shiftl_tests!(U1024, u1024);
|
|
generate_shiftl_tests!(U1088, u1088);
|
|
generate_shiftl_tests!(U1152, u1152);
|
|
generate_shiftl_tests!(U1216, u1216);
|
|
generate_shiftl_tests!(U1280, u1280);
|
|
generate_shiftl_tests!(U1536, u1536);
|
|
generate_shiftl_tests!(U1600, u1600);
|
|
generate_shiftl_tests!(U1664, u1664);
|
|
generate_shiftl_tests!(U1792, u1792);
|
|
generate_shiftl_tests!(U2048, u2048);
|
|
generate_shiftl_tests!(U2112, u2112);
|
|
generate_shiftl_tests!(U2176, u2176);
|
|
generate_shiftl_tests!(U2432, u2432);
|
|
generate_shiftl_tests!(U2560, u2560);
|
|
generate_shiftl_tests!(U3072, u3072);
|
|
generate_shiftl_tests!(U3136, u3136);
|
|
generate_shiftl_tests!(U3200, u3200);
|
|
generate_shiftl_tests!(U4096, u4096);
|
|
generate_shiftl_tests!(U4160, u4160);
|
|
generate_shiftl_tests!(U4224, u4224);
|
|
generate_shiftl_tests!(U6144, u6144);
|
|
generate_shiftl_tests!(U6272, u6272);
|
|
generate_shiftl_tests!(U7680, u7680);
|
|
generate_shiftl_tests!(U7744, u7744);
|
|
generate_shiftl_tests!(U8192, u8192);
|
|
generate_shiftl_tests!(U8256, u8256);
|
|
generate_shiftl_tests!(U8320, u8320);
|
|
generate_shiftl_tests!(ignore U15360, u15360);
|
|
generate_shiftl_tests!(ignore U15424, u15424);
|
|
generate_shiftl_tests!(ignore U15488, u15488);
|
|
generate_shiftl_tests!(ignore U16384, u16384);
|
|
generate_shiftl_tests!(ignore U16512, u16512);
|
|
generate_shiftl_tests!(ignore U30720, u30720);
|
|
generate_shiftl_tests!(ignore U30848, u30848);
|
|
}
|
|
mod shiftr {
|
|
use super::super::*;
|
|
use testing::{build_test_path,run_test};
|
|
|
|
generate_shiftr_tests!(U192, u192);
|
|
generate_shiftr_tests!(U256, u256);
|
|
generate_shiftr_tests!(U320, u320);
|
|
generate_shiftr_tests!(U384, u384);
|
|
generate_shiftr_tests!(U448, u448);
|
|
generate_shiftr_tests!(U512, u512);
|
|
generate_shiftr_tests!(U576, u576);
|
|
generate_shiftr_tests!(U640, u640);
|
|
generate_shiftr_tests!(U768, u768);
|
|
generate_shiftr_tests!(U832, u832);
|
|
generate_shiftr_tests!(U896, u896);
|
|
generate_shiftr_tests!(U1024, u1024);
|
|
generate_shiftr_tests!(U1088, u1088);
|
|
generate_shiftr_tests!(U1152, u1152);
|
|
generate_shiftr_tests!(U1216, u1216);
|
|
generate_shiftr_tests!(U1280, u1280);
|
|
generate_shiftr_tests!(U1536, u1536);
|
|
generate_shiftr_tests!(U1600, u1600);
|
|
generate_shiftr_tests!(U1664, u1664);
|
|
generate_shiftr_tests!(U1792, u1792);
|
|
generate_shiftr_tests!(U2048, u2048);
|
|
generate_shiftr_tests!(U2112, u2112);
|
|
generate_shiftr_tests!(U2176, u2176);
|
|
generate_shiftr_tests!(U2432, u2432);
|
|
generate_shiftr_tests!(U2560, u2560);
|
|
generate_shiftr_tests!(U3072, u3072);
|
|
generate_shiftr_tests!(U3136, u3136);
|
|
generate_shiftr_tests!(U3200, u3200);
|
|
generate_shiftr_tests!(U4096, u4096);
|
|
generate_shiftr_tests!(U4160, u4160);
|
|
generate_shiftr_tests!(U4224, u4224);
|
|
generate_shiftr_tests!(U6144, u6144);
|
|
generate_shiftr_tests!(U6272, u6272);
|
|
generate_shiftr_tests!(U7680, u7680);
|
|
generate_shiftr_tests!(U7744, u7744);
|
|
generate_shiftr_tests!(U8192, u8192);
|
|
generate_shiftr_tests!(U8256, u8256);
|
|
generate_shiftr_tests!(U8320, u8320);
|
|
generate_shiftr_tests!(ignore U15360, u15360);
|
|
generate_shiftr_tests!(ignore U15424, u15424);
|
|
generate_shiftr_tests!(ignore U15488, u15488);
|
|
generate_shiftr_tests!(ignore U16384, u16384);
|
|
generate_shiftr_tests!(ignore U16512, u16512);
|
|
generate_shiftr_tests!(ignore U30720, u30720);
|
|
generate_shiftr_tests!(ignore U30848, u30848);
|
|
}
|
|
mod add {
|
|
use super::super::*;
|
|
use testing::{build_test_path,run_test};
|
|
|
|
generate_add_tests!(U192, u192, U256);
|
|
generate_add_tests!(U256, u256, U320);
|
|
generate_add_tests!(U320, u320, U384);
|
|
generate_add_tests!(U384, u384, U448);
|
|
generate_add_tests!(U448, u448, U512);
|
|
generate_add_tests!(U512, u512, U576);
|
|
generate_add_tests!(U576, u576, U640);
|
|
generate_add_tests!(U640, u640, U704);
|
|
generate_add_tests!(U768, u768, U832);
|
|
generate_add_tests!(U832, u832, U896);
|
|
generate_add_tests!(U896, u896, U960);
|
|
generate_add_tests!(U960, u960, U1024);
|
|
generate_add_tests!(U1024, u1024, U1088);
|
|
generate_add_tests!(U1088, u1088, U1152);
|
|
generate_add_tests!(U1152, u1152, U1216);
|
|
generate_add_tests!(U1216, u1216, U1280);
|
|
generate_add_tests!(U1280, u1280, U1344);
|
|
generate_add_tests!(U1600, u1600, U1664);
|
|
generate_add_tests!(U1664, u1664, U1728);
|
|
generate_add_tests!(U1728, u1728, U1792);
|
|
generate_add_tests!(U1792, u1792, U1856);
|
|
generate_add_tests!(U2048, u2048, U2112);
|
|
generate_add_tests!(U2112, u2112, U2176);
|
|
generate_add_tests!(U2176, u2176, U2240);
|
|
generate_add_tests!(U2432, u2432, U2496);
|
|
generate_add_tests!(U2496, u2496, U2560);
|
|
generate_add_tests!(U2560, u2560, U2624);
|
|
generate_add_tests!(U3072, u3072, U3136);
|
|
generate_add_tests!(U3136, u3136, U3200);
|
|
generate_add_tests!(U3200, u3200, U3264);
|
|
generate_add_tests!(U4096, u4096, U4160);
|
|
generate_add_tests!(U4160, u4160, U4224);
|
|
generate_add_tests!(U4224, u4224, U4288);
|
|
generate_add_tests!(U6144, u6144, U6208);
|
|
generate_add_tests!(U6208, u6208, U6272);
|
|
generate_add_tests!(U6272, u6272, U6336);
|
|
generate_add_tests!(U7744, u7744, U7808);
|
|
generate_add_tests!(U8256, u8256, U8320);
|
|
generate_add_tests!(U8320, u8320, U8384);
|
|
generate_add_tests!(ignore U15424, u15424, U15488);
|
|
generate_add_tests!(ignore U15488, u15488, U15552);
|
|
generate_add_tests!(ignore U16448, u16448, U16512);
|
|
generate_add_tests!(ignore U16512, u16512, U16576);
|
|
generate_add_tests!(ignore U30784, u30784, U30848);
|
|
generate_add_tests!(ignore U30848, u30848, U30912);
|
|
}
|
|
mod mul {
|
|
use super::super::*;
|
|
use testing::{build_test_path,run_test};
|
|
|
|
generate_mul_tests!(U192, u192, U384);
|
|
generate_mul_tests!(U256, u256, U512);
|
|
generate_mul_tests!(U320, u320, U640);
|
|
generate_mul_tests!(U384, u384, U768);
|
|
generate_mul_tests!(U448, u448, U896);
|
|
generate_mul_tests!(U512, u512, U1024);
|
|
generate_mul_tests!(U576, u576, U1152);
|
|
generate_mul_tests!(U640, u640, U1280);
|
|
generate_mul_tests!(U768, u768, U1536);
|
|
generate_mul_tests!(U832, u832, U1664);
|
|
generate_mul_tests!(U896, u896, U1792);
|
|
generate_mul_tests!(U960, u960, U1920);
|
|
generate_mul_tests!(U1024, u1024, U2048);
|
|
generate_mul_tests!(U1088, u1088, U2176);
|
|
generate_mul_tests!(U1152, u1152, U2304);
|
|
generate_mul_tests!(U1216, u1216, U2432);
|
|
generate_mul_tests!(U1280, u1280, U2560);
|
|
generate_mul_tests!(U1536, u1536, U3072);
|
|
generate_mul_tests!(U1600, u1600, U3200);
|
|
generate_mul_tests!(U1664, u1664, U3328);
|
|
generate_mul_tests!(U1728, u1728, U3456);
|
|
generate_mul_tests!(U2048, u2048, U4096);
|
|
generate_mul_tests!(U2112, u2112, U4224);
|
|
generate_mul_tests!(U2304, u2304, U4608);
|
|
generate_mul_tests!(U2432, u2432, U4864);
|
|
generate_mul_tests!(U2496, u2496, U4992);
|
|
generate_mul_tests!(U3072, u3072, U6144);
|
|
generate_mul_tests!(U3136, u3136, U6272);
|
|
generate_mul_tests!(U4096, u4096, U8192);
|
|
generate_mul_tests!(U4160, u4160, U8320);
|
|
generate_mul_tests!(U4224, u4224, U8448);
|
|
generate_mul_tests!(U6144, u6144, U12288);
|
|
generate_mul_tests!(U6208, u6208, U12416);
|
|
generate_mul_tests!(U7680, u7680, U15360);
|
|
generate_mul_tests!(U7744, u7744, U15488);
|
|
generate_mul_tests!(U8192, u8192, U16384);
|
|
generate_mul_tests!(U8256, u8256, U16512);
|
|
generate_mul_tests!(U8320, u8320, U16640);
|
|
generate_mul_tests!(ignore U12416, u12416, U24832);
|
|
generate_mul_tests!(ignore U15360, u15360, U30720);
|
|
generate_mul_tests!(ignore U15424, u15424, U30848);
|
|
generate_mul_tests!(ignore U16384, u16384, U32768);
|
|
generate_mul_tests!(ignore U16448, u16448, U32896);
|
|
generate_mul_tests!(ignore U30720, u30720, U61440);
|
|
generate_mul_tests!(ignore U30784, u30784, U61568);
|
|
}
|
|
mod scale {
|
|
use super::super::*;
|
|
use testing::{build_test_path,run_test};
|
|
|
|
generate_scale_tests!(U192, u192, U256);
|
|
generate_scale_tests!(U256, u256, U320);
|
|
generate_scale_tests!(U320, u320, U384);
|
|
generate_scale_tests!(U384, u384, U448);
|
|
generate_scale_tests!(U448, u448, U512);
|
|
generate_scale_tests!(U512, u512, U576);
|
|
generate_scale_tests!(U576, u576, U640);
|
|
generate_scale_tests!(U640, u640, U704);
|
|
generate_scale_tests!(U768, u768, U832);
|
|
generate_scale_tests!(U832, u832, U896);
|
|
generate_scale_tests!(U896, u896, U960);
|
|
generate_scale_tests!(U960, u960, U1024);
|
|
generate_scale_tests!(U1024, u1024, U1088);
|
|
generate_scale_tests!(U1088, u1088, U1152);
|
|
generate_scale_tests!(U1152, u1152, U1216);
|
|
generate_scale_tests!(U1216, u1216, U1280);
|
|
generate_scale_tests!(U1280, u1280, U1344);
|
|
generate_scale_tests!(U1536, u1536, U1600);
|
|
generate_scale_tests!(U1600, u1600, U1664);
|
|
generate_scale_tests!(U1664, u1664, U1728);
|
|
generate_scale_tests!(U1728, u1728, U1792);
|
|
generate_scale_tests!(U2048, u2048, U2112);
|
|
generate_scale_tests!(U2112, u2112, U2176);
|
|
generate_scale_tests!(U2304, u2304, U2368);
|
|
generate_scale_tests!(U2432, u2432, U2496);
|
|
generate_scale_tests!(U2496, u2496, U2560);
|
|
generate_scale_tests!(U3072, u3072, U3136);
|
|
generate_scale_tests!(U3136, u3136, U3200);
|
|
generate_scale_tests!(U4096, u4096, U4160);
|
|
generate_scale_tests!(U4160, u4160, U4224);
|
|
generate_scale_tests!(U4224, u4224, U4288);
|
|
generate_scale_tests!(U6144, u6144, U6208);
|
|
generate_scale_tests!(U6208, u6208, U6272);
|
|
generate_scale_tests!(U7680, u7680, U7744);
|
|
generate_scale_tests!(U7744, u7744, U7808);
|
|
generate_scale_tests!(U8192, u8192, U8256);
|
|
generate_scale_tests!(U8256, u8256, U8320);
|
|
generate_scale_tests!(U8320, u8320, U8384);
|
|
generate_scale_tests!(ignore U12416, u12416, U12480);
|
|
generate_scale_tests!(ignore U15360, u15360, U15424);
|
|
generate_scale_tests!(ignore U15424, u15424, U15488);
|
|
generate_scale_tests!(ignore U16384, u16384, U16448);
|
|
generate_scale_tests!(ignore U16448, u16448, U16512);
|
|
generate_scale_tests!(ignore U30720, u30720, U30784);
|
|
generate_scale_tests!(ignore U30784, u30784, U30848);
|
|
}
|
|
mod div {
|
|
use super::super::*;
|
|
use testing::{build_test_path,run_test};
|
|
|
|
generate_div_tests!(U192, u192);
|
|
generate_div_tests!(U256, u256);
|
|
generate_div_tests!(U320, u320);
|
|
generate_div_tests!(U384, u384);
|
|
generate_div_tests!(U448, u448);
|
|
generate_div_tests!(U512, u512);
|
|
generate_div_tests!(U576, u576);
|
|
generate_div_tests!(U640, u640);
|
|
generate_div_tests!(U768, u768);
|
|
generate_div_tests!(U832, u832);
|
|
generate_div_tests!(U896, u896);
|
|
generate_div_tests!(U960, u960);
|
|
generate_div_tests!(U1024, u1024);
|
|
generate_div_tests!(U1088, u1088);
|
|
generate_div_tests!(U1152, u1152);
|
|
generate_div_tests!(U1216, u1216);
|
|
generate_div_tests!(U1280, u1280);
|
|
generate_div_tests!(U1536, u1536);
|
|
generate_div_tests!(U1600, u1600);
|
|
generate_div_tests!(U1664, u1664);
|
|
generate_div_tests!(U1728, u1728);
|
|
generate_div_tests!(U2048, u2048);
|
|
generate_div_tests!(ignore U2112, u2112);
|
|
generate_div_tests!(ignore U2304, u2304);
|
|
generate_div_tests!(ignore U2432, u2432);
|
|
generate_div_tests!(ignore U2496, u2496);
|
|
generate_div_tests!(ignore U3072, u3072);
|
|
generate_div_tests!(ignore U3136, u3136);
|
|
generate_div_tests!(ignore U4096, u4096);
|
|
generate_div_tests!(ignore U4160, u4160);
|
|
generate_div_tests!(ignore U4224, u4224);
|
|
generate_div_tests!(ignore U6144, u6144);
|
|
generate_div_tests!(ignore U6208, u6208);
|
|
generate_div_tests!(ignore U7680, u7680);
|
|
generate_div_tests!(ignore U7744, u7744);
|
|
generate_div_tests!(ignore U8192, u8192);
|
|
generate_div_tests!(ignore U8256, u8256);
|
|
generate_div_tests!(ignore U8320, u8320);
|
|
generate_div_tests!(ignore U12416, u12416);
|
|
generate_div_tests!(ignore U15360, u15360);
|
|
generate_div_tests!(ignore U15424, u15424);
|
|
generate_div_tests!(ignore U16384, u16384);
|
|
generate_div_tests!(ignore U16448, u16448);
|
|
generate_div_tests!(ignore U30720, u30720);
|
|
generate_div_tests!(ignore U30784, u30784);
|
|
}
|
|
mod barrett_gen {
|
|
use super::super::*;
|
|
use testing::{build_test_path,run_test};
|
|
|
|
generate_barrett_gen_tests!(U192, u192, U256);
|
|
generate_barrett_gen_tests!(U256, u256, U320);
|
|
generate_barrett_gen_tests!(U384, u384, U448);
|
|
generate_barrett_gen_tests!(U448, u448, U512);
|
|
generate_barrett_gen_tests!(U512, u512, U576);
|
|
generate_barrett_gen_tests!(U576, u576, U640);
|
|
generate_barrett_gen_tests!(U832, u832, U896);
|
|
generate_barrett_gen_tests!(U1024, u1024, U1088);
|
|
generate_barrett_gen_tests!(U1216, u1216, U1280);
|
|
generate_barrett_gen_tests!(U1536, u1536, U1600);
|
|
generate_barrett_gen_tests!(ignore U2048, u2048, U2112);
|
|
generate_barrett_gen_tests!(ignore U3072, u3072, U3136);
|
|
generate_barrett_gen_tests!(ignore U4096, u4096, U4160);
|
|
generate_barrett_gen_tests!(ignore U7680, u7680, U7744);
|
|
generate_barrett_gen_tests!(ignore U8192, u8192, U8256);
|
|
generate_barrett_gen_tests!(ignore U15360, u15360, U15424);
|
|
}
|
|
mod barrett_red {
|
|
use super::super::*;
|
|
use testing::{build_test_path,run_test};
|
|
|
|
generate_barrett_red_tests!(U192, u192, U256, U384);
|
|
generate_barrett_red_tests!(U256, u256, U320, U512);
|
|
generate_barrett_red_tests!(U384, u384, U448, U768);
|
|
generate_barrett_red_tests!(U448, u448, U512, U896);
|
|
generate_barrett_red_tests!(U512, u512, U576, U1024);
|
|
generate_barrett_red_tests!(U576, u576, U640, U1152);
|
|
generate_barrett_red_tests!(U832, u832, U896, U1664);
|
|
generate_barrett_red_tests!(U1024, u1024, U1088, U2048);
|
|
generate_barrett_red_tests!(U1216, u1216, U1280, U2432);
|
|
generate_barrett_red_tests!(U1536, u1536, U1600, U3072);
|
|
generate_barrett_red_tests!(U2048, u2048, U2112, U4096);
|
|
generate_barrett_red_tests!(U3072, u3072, U3136, U6144);
|
|
generate_barrett_red_tests!(ignore U4096, u4096, U4160, U8192);
|
|
generate_barrett_red_tests!(ignore U7680, u7680, U7744, U15360);
|
|
generate_barrett_red_tests!(ignore U8192, u8192, U8256, U16384);
|
|
generate_barrett_red_tests!(ignore U15360, u15360, U15424, U30720);
|
|
}
|
|
mod modsq {
|
|
use super::super::*;
|
|
use testing::{build_test_path,run_test};
|
|
|
|
generate_modsq_tests!(U192, u192);
|
|
generate_modsq_tests!(U256, u256);
|
|
generate_modsq_tests!(U512, u512);
|
|
generate_modsq_tests!(U1024, u1024);
|
|
generate_modsq_tests!(U1536, u1536);
|
|
generate_modsq_tests!(U2048, u2048);
|
|
generate_modsq_tests!(U3072, u3072);
|
|
generate_modsq_tests!(ignore U4096, u4096);
|
|
generate_modsq_tests!(ignore U7680, u7680);
|
|
generate_modsq_tests!(ignore U8192, u8192);
|
|
generate_modsq_tests!(ignore U15360, u15360);
|
|
}
|
|
mod modmul {
|
|
use super::super::*;
|
|
use testing::{build_test_path,run_test};
|
|
|
|
generate_modmul_tests!(U192, u192);
|
|
generate_modmul_tests!(U256, u256);
|
|
generate_modmul_tests!(U384, u384);
|
|
generate_modmul_tests!(U512, u512);
|
|
generate_modmul_tests!(U576, u576);
|
|
generate_modmul_tests!(U1024, u1024);
|
|
generate_modmul_tests!(U1536, u1536);
|
|
generate_modmul_tests!(U2048, u2048);
|
|
generate_modmul_tests!(U3072, u3072);
|
|
generate_modmul_tests!(ignore U4096, u4096);
|
|
generate_modmul_tests!(ignore U7680, u7680);
|
|
generate_modmul_tests!(ignore U8192, u8192);
|
|
generate_modmul_tests!(ignore U15360, u15360);
|
|
}
|
|
mod modexp {
|
|
use super::super::*;
|
|
use testing::{build_test_path,run_test};
|
|
|
|
generate_modexp_tests!(U192, u192);
|
|
generate_modexp_tests!(U256, u256);
|
|
generate_modexp_tests!(ignore U512, u512);
|
|
generate_modexp_tests!(ignore U1024, u1024);
|
|
generate_modexp_tests!(ignore U1536, u1536);
|
|
generate_modexp_tests!(ignore U2048, u2048);
|
|
generate_modexp_tests!(ignore U3072, u3072);
|
|
generate_modexp_tests!(ignore U4096, u4096);
|
|
generate_modexp_tests!(ignore U7680, u7680);
|
|
generate_modexp_tests!(ignore U8192, u8192);
|
|
generate_modexp_tests!(ignore U15360, u15360);
|
|
}
|
|
mod square {
|
|
use super::super::*;
|
|
use testing::{build_test_path,run_test};
|
|
|
|
generate_square_tests!(U192, u192, U384);
|
|
generate_square_tests!(U256, u256, U512);
|
|
generate_square_tests!(U320, u320, U640);
|
|
generate_square_tests!(U384, u384, U768);
|
|
generate_square_tests!(U448, u448, U896);
|
|
generate_square_tests!(U512, u512, U1024);
|
|
generate_square_tests!(U576, u576, U1152);
|
|
generate_square_tests!(U640, u640, U1280);
|
|
generate_square_tests!(U768, u768, U1536);
|
|
generate_square_tests!(U832, u832, U1664);
|
|
generate_square_tests!(U896, u896, U1792);
|
|
generate_square_tests!(U1024, u1024, U2048);
|
|
generate_square_tests!(U1088, u1088, U2176);
|
|
generate_square_tests!(U1152, u1152, U2304);
|
|
generate_square_tests!(U1216, u1216, U2432);
|
|
generate_square_tests!(U1280, u1280, U2560);
|
|
generate_square_tests!(U1536, u1536, U3072);
|
|
generate_square_tests!(U1600, u1600, U3200);
|
|
generate_square_tests!(U2048, u2048, U4096);
|
|
generate_square_tests!(U2112, u2112, U4224);
|
|
generate_square_tests!(U3072, u3072, U6144);
|
|
generate_square_tests!(U3136, u3136, U6272);
|
|
generate_square_tests!(ignore U4096, u4096, U8192);
|
|
generate_square_tests!(ignore U4160, u4160, U8320);
|
|
generate_square_tests!(ignore U7680, u7680, U15360);
|
|
generate_square_tests!(ignore U7744, u7744, U15488);
|
|
generate_square_tests!(ignore U8192, u8192, U16384);
|
|
generate_square_tests!(ignore U8256, u8256, U16512);
|
|
generate_square_tests!(ignore U15360, u15360, U30720);
|
|
generate_square_tests!(ignore U15424, u15424, U30848);
|
|
}
|
|
mod sqrt {
|
|
use super::super::*;
|
|
use testing::{build_test_path,run_test};
|
|
|
|
generate_sqrt_tests!(U192, u192);
|
|
generate_sqrt_tests!(U256, u256);
|
|
generate_sqrt_tests!(U1024, u1024);
|
|
generate_sqrt_tests!(U2048, u2048);
|
|
generate_sqrt_tests!(U3072, u3072);
|
|
}
|
|
mod barrett_modsq {
|
|
use super::super::*;
|
|
use testing::{build_test_path,run_test};
|
|
|
|
generate_barrett_modsq_tests!(U192, u192, U256);
|
|
generate_barrett_modsq_tests!(U256, u256, U320);
|
|
generate_barrett_modsq_tests!(U512, u512, U576);
|
|
generate_barrett_modsq_tests!(U1024, u1024, U1088);
|
|
generate_barrett_modsq_tests!(U1536, u1536, U1600);
|
|
generate_barrett_modsq_tests!(U2048, u2048, U2112);
|
|
generate_barrett_modsq_tests!(U3072, u3072, U3136);
|
|
generate_barrett_modsq_tests!(ignore U4096, u4096, U4160);
|
|
generate_barrett_modsq_tests!(ignore U7680, u7680, U7744);
|
|
generate_barrett_modsq_tests!(ignore U8192, u8192, U8256);
|
|
generate_barrett_modsq_tests!(ignore U15360, u15360, U15424);
|
|
}
|
|
mod barrett_modmul {
|
|
use super::super::*;
|
|
use testing::{build_test_path,run_test};
|
|
|
|
generate_barrett_modmul_tests!(U192, u192, U256);
|
|
generate_barrett_modmul_tests!(U256, u256, U320);
|
|
generate_barrett_modmul_tests!(U384, u384, U448);
|
|
generate_barrett_modmul_tests!(U512, u512, U576);
|
|
generate_barrett_modmul_tests!(U576, u576, U640);
|
|
generate_barrett_modmul_tests!(U1024, u1024, U1088);
|
|
generate_barrett_modmul_tests!(U1536, u1536, U1600);
|
|
generate_barrett_modmul_tests!(U2048, u2048, U2112);
|
|
generate_barrett_modmul_tests!(U3072, u3072, U3136);
|
|
generate_barrett_modmul_tests!(ignore U4096, u4096, U4160);
|
|
generate_barrett_modmul_tests!(ignore U7680, u7680, U7744);
|
|
generate_barrett_modmul_tests!(ignore U8192, u8192, U8256);
|
|
generate_barrett_modmul_tests!(ignore U15360, u15360, U15424);
|
|
}
|
|
mod barrett_modexp {
|
|
use super::super::*;
|
|
use testing::{build_test_path,run_test};
|
|
|
|
generate_barrett_modexp_tests!(U192, u192, U256);
|
|
generate_barrett_modexp_tests!(U256, u256, U320);
|
|
generate_barrett_modexp_tests!(U512, u512, U576);
|
|
generate_barrett_modexp_tests!(ignore U1024, u1024, U1088);
|
|
generate_barrett_modexp_tests!(ignore U1536, u1536, U1600);
|
|
generate_barrett_modexp_tests!(ignore U2048, u2048, U2112);
|
|
generate_barrett_modexp_tests!(ignore U3072, u3072, U3136);
|
|
generate_barrett_modexp_tests!(ignore U4096, u4096, U4160);
|
|
generate_barrett_modexp_tests!(ignore U7680, u7680, U7744);
|
|
generate_barrett_modexp_tests!(ignore U8192, u8192, U8256);
|
|
generate_barrett_modexp_tests!(ignore U15360, u15360, U15424);
|
|
}
|
|
}
|