base_impls!(U192, 3); barrett_impl!(BarrettU192, U192, U256, U384, U448); modexp_impls!(U192); modmul_impls!(U192, U384); modsq_impls!(U192, U384); multiply_impls!(U192, U384); square_impls!(U192, U384, 192); conversion_impls!(U192, U256); conversion_impls!(U192, U384); conversion_impls!(U192, U448); base_impls!(U256, 4); barrett_impl!(BarrettU256, U256, U320, U512, U576); modexp_impls!(U256); modmul_impls!(U256, U512); modsq_impls!(U256, U512); multiply_impls!(U256, U512); square_impls!(U256, U512, 256); conversion_impls!(U256, U320); conversion_impls!(U256, U384); conversion_impls!(U256, U448); conversion_impls!(U256, U512); conversion_impls!(U256, U576); base_impls!(U320, 5); multiply_impls!(U320, U640); conversion_impls!(U320, U512); conversion_impls!(U320, U576); base_impls!(U384, 6); barrett_impl!(BarrettU384, U384, U448, U768, U832); div_impls!(U384, U768); modexp_impls!(U384); modmul_impls!(U384, U768); modsq_impls!(U384, U768); multiply_impls!(U384, U768); shift_impls!(U384, 6); square_impls!(U384, U768, 384); conversion_impls!(U384, U448); conversion_impls!(U384, U768); conversion_impls!(U384, U832); addition_impls!(U448, U512); base_impls!(U448, 7); div_impls!(U448, U896); multiply_impls!(U448, U896); shift_impls!(U448, 7); subtraction_impls!(U448, 7); conversion_impls!(U448, U512); conversion_impls!(U448, U768); conversion_impls!(U448, U832); conversion_impls!(U448, U896); base_impls!(U512, 8); barrett_impl!(BarrettU512, U512, U576, U1024, U1088); div_impls!(U512, U1024); modexp_impls!(U512); modmul_impls!(U512, U1024); modsq_impls!(U512, U1024); multiply_impls!(U512, U1024); shift_impls!(U512, 8); square_impls!(U512, U1024, 512); conversion_impls!(U512, U576); conversion_impls!(U512, U1024); conversion_impls!(U512, U1088); addition_impls!(U576, U640); base_impls!(U576, 9); barrett_impl!(BarrettU576, U576, U640, U1152, U1216); div_impls!(U576, U1152); modexp_impls!(U576); modmul_impls!(U576, U1152); modsq_impls!(U576, U1152); multiply_impls!(U576, U1152); 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); base_impls!(U640, 10); multiply_impls!(U640, U1280); conversion_impls!(U640, U1152); conversion_impls!(U640, U1216); addition_impls!(U768, U832); base_impls!(U768, 12); div_impls!(U768, U1536); multiply_impls!(U768, U1536); shift_impls!(U768, 12); subtraction_impls!(U768, 12); conversion_impls!(U768, U832); conversion_impls!(U768, U1536); addition_impls!(U832, U896); base_impls!(U832, 13); div_impls!(U832, U1664); multiply_impls!(U832, U1664); shift_impls!(U832, 13); subtraction_impls!(U832, 13); conversion_impls!(U832, U896); conversion_impls!(U832, U1664); addition_impls!(U896, U960); base_impls!(U896, 14); subtraction_impls!(U896, 14); conversion_impls!(U896, U960); base_impls!(U960, 15); addition_impls!(U1024, U1088); base_impls!(U1024, 16); barrett_impl!(BarrettU1024, U1024, U1088, U2048, U2112); div_impls!(U1024, U2048); modexp_impls!(U1024); modmul_impls!(U1024, U2048); modsq_impls!(U1024, U2048); multiply_impls!(U1024, U2048); shift_impls!(U1024, 16); square_impls!(U1024, U2048, 1024); subtraction_impls!(U1024, 16); conversion_impls!(U1024, U1088); conversion_impls!(U1024, U2048); conversion_impls!(U1024, U2112); addition_impls!(U1088, U1152); base_impls!(U1088, 17); div_impls!(U1088, U2176); multiply_impls!(U1088, U2176); shift_impls!(U1088, 17); subtraction_impls!(U1088, 17); conversion_impls!(U1088, U1152); conversion_impls!(U1088, U2048); conversion_impls!(U1088, U2112); conversion_impls!(U1088, U2176); addition_impls!(U1152, U1216); base_impls!(U1152, 18); div_impls!(U1152, U2304); multiply_impls!(U1152, U2304); shift_impls!(U1152, 18); subtraction_impls!(U1152, 18); conversion_impls!(U1152, U1216); conversion_impls!(U1152, U2304); addition_impls!(U1216, U1280); base_impls!(U1216, 19); div_impls!(U1216, U2432); multiply_impls!(U1216, U2432); shift_impls!(U1216, 19); subtraction_impls!(U1216, 19); conversion_impls!(U1216, U1280); conversion_impls!(U1216, U2432); base_impls!(U1280, 20); addition_impls!(U1536, U1600); base_impls!(U1536, 24); subtraction_impls!(U1536, 24); conversion_impls!(U1536, U1600); base_impls!(U1600, 25); addition_impls!(U1664, U1728); base_impls!(U1664, 26); subtraction_impls!(U1664, 26); conversion_impls!(U1664, U1728); base_impls!(U1728, 27); addition_impls!(U2048, U2112); base_impls!(U2048, 32); barrett_impl!(BarrettU2048, U2048, U2112, U4096, U4160); div_impls!(U2048, U4096); modexp_impls!(U2048); modmul_impls!(U2048, U4096); modsq_impls!(U2048, U4096); multiply_impls!(U2048, U4096); shift_impls!(U2048, 32); square_impls!(U2048, U4096, 2048); subtraction_impls!(U2048, 32); conversion_impls!(U2048, U2112); conversion_impls!(U2048, U4096); conversion_impls!(U2048, U4160); addition_impls!(U2112, U2176); base_impls!(U2112, 33); div_impls!(U2112, U4224); multiply_impls!(U2112, U4224); shift_impls!(U2112, 33); subtraction_impls!(U2112, 33); conversion_impls!(U2112, U2176); conversion_impls!(U2112, U4096); conversion_impls!(U2112, U4160); conversion_impls!(U2112, U4224); addition_impls!(U2176, U2240); base_impls!(U2176, 34); subtraction_impls!(U2176, 34); conversion_impls!(U2176, U2240); base_impls!(U2240, 35); addition_impls!(U2304, U2368); base_impls!(U2304, 36); subtraction_impls!(U2304, 36); conversion_impls!(U2304, U2368); base_impls!(U2368, 37); addition_impls!(U2432, U2496); base_impls!(U2432, 38); subtraction_impls!(U2432, 38); conversion_impls!(U2432, U2496); base_impls!(U2496, 39); base_impls!(U3072, 48); barrett_impl!(BarrettU3072, U3072, U3136, U6144, U6208); modexp_impls!(U3072); modmul_impls!(U3072, U6144); modsq_impls!(U3072, U6144); multiply_impls!(U3072, U6144); square_impls!(U3072, U6144, 3072); conversion_impls!(U3072, U3136); conversion_impls!(U3072, U6144); conversion_impls!(U3072, U6208); base_impls!(U3136, 49); multiply_impls!(U3136, U6272); conversion_impls!(U3136, U6144); conversion_impls!(U3136, U6208); addition_impls!(U4096, U4160); base_impls!(U4096, 64); barrett_impl!(BarrettU4096, U4096, U4160, U8192, U8256); div_impls!(U4096, U8192); modexp_impls!(U4096); modmul_impls!(U4096, U8192); modsq_impls!(U4096, U8192); multiply_impls!(U4096, U8192); 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); addition_impls!(U4160, U4224); base_impls!(U4160, 65); div_impls!(U4160, U8320); multiply_impls!(U4160, U8320); shift_impls!(U4160, 65); subtraction_impls!(U4160, 65); conversion_impls!(U4160, U4224); conversion_impls!(U4160, U8192); conversion_impls!(U4160, U8256); conversion_impls!(U4160, U8320); addition_impls!(U4224, U4288); base_impls!(U4224, 66); subtraction_impls!(U4224, 66); conversion_impls!(U4224, U4288); base_impls!(U4288, 67); base_impls!(U6144, 96); div_impls!(U6144, U12288); multiply_impls!(U6144, U12288); shift_impls!(U6144, 96); conversion_impls!(U6144, U6208); conversion_impls!(U6144, U12288); addition_impls!(U6208, U6272); base_impls!(U6208, 97); div_impls!(U6208, U12416); multiply_impls!(U6208, U12416); shift_impls!(U6208, 97); subtraction_impls!(U6208, 97); conversion_impls!(U6208, U6272); conversion_impls!(U6208, U12416); base_impls!(U6272, 98); base_impls!(U7680, 120); barrett_impl!(BarrettU7680, U7680, U7744, U15360, U15424); modexp_impls!(U7680); modmul_impls!(U7680, U15360); modsq_impls!(U7680, U15360); multiply_impls!(U7680, U15360); square_impls!(U7680, U15360, 7680); conversion_impls!(U7680, U7744); conversion_impls!(U7680, U15360); conversion_impls!(U7680, U15424); base_impls!(U7744, 121); multiply_impls!(U7744, U15488); conversion_impls!(U7744, U15360); conversion_impls!(U7744, U15424); addition_impls!(U8192, U8256); base_impls!(U8192, 128); barrett_impl!(BarrettU8192, U8192, U8256, U16384, U16448); div_impls!(U8192, U16384); modexp_impls!(U8192); modmul_impls!(U8192, U16384); modsq_impls!(U8192, U16384); multiply_impls!(U8192, U16384); 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); div_impls!(U8256, U16512); multiply_impls!(U8256, U16512); shift_impls!(U8256, 129); subtraction_impls!(U8256, 129); conversion_impls!(U8256, U8320); conversion_impls!(U8256, U16384); conversion_impls!(U8256, U16448); conversion_impls!(U8256, U16512); addition_impls!(U8320, U8384); base_impls!(U8320, 130); subtraction_impls!(U8320, 130); conversion_impls!(U8320, U8384); base_impls!(U8384, 131); addition_impls!(U12288, U12352); base_impls!(U12288, 192); subtraction_impls!(U12288, 192); conversion_impls!(U12288, U12352); base_impls!(U12352, 193); addition_impls!(U12416, U12480); base_impls!(U12416, 194); subtraction_impls!(U12416, 194); conversion_impls!(U12416, U12480); base_impls!(U12480, 195); base_impls!(U15360, 240); barrett_impl!(BarrettU15360, U15360, U15424, U30720, U30784); div_impls!(U15360, U30720); modexp_impls!(U15360); modmul_impls!(U15360, U30720); modsq_impls!(U15360, U30720); multiply_impls!(U15360, U30720); shift_impls!(U15360, 240); square_impls!(U15360, U30720, 15360); conversion_impls!(U15360, U15424); conversion_impls!(U15360, U30720); conversion_impls!(U15360, U30784); addition_impls!(U15424, U15488); base_impls!(U15424, 241); div_impls!(U15424, U30848); multiply_impls!(U15424, U30848); shift_impls!(U15424, 241); subtraction_impls!(U15424, 241); conversion_impls!(U15424, U15488); conversion_impls!(U15424, U30720); conversion_impls!(U15424, U30784); conversion_impls!(U15424, U30848); base_impls!(U15488, 242); addition_impls!(U16384, U16448); base_impls!(U16384, 256); div_impls!(U16384, U32768); multiply_impls!(U16384, U32768); shift_impls!(U16384, 256); subtraction_impls!(U16384, 256); conversion_impls!(U16384, U16448); conversion_impls!(U16384, U32768); addition_impls!(U16448, U16512); base_impls!(U16448, 257); div_impls!(U16448, U32896); multiply_impls!(U16448, U32896); shift_impls!(U16448, 257); subtraction_impls!(U16448, 257); conversion_impls!(U16448, U16512); conversion_impls!(U16448, U32896); addition_impls!(U16512, U16576); base_impls!(U16512, 258); subtraction_impls!(U16512, 258); conversion_impls!(U16512, U16576); base_impls!(U16576, 259); addition_impls!(U30720, U30784); base_impls!(U30720, 480); div_impls!(U30720, U61440); multiply_impls!(U30720, U61440); shift_impls!(U30720, 480); subtraction_impls!(U30720, 480); conversion_impls!(U30720, U30784); conversion_impls!(U30720, U61440); addition_impls!(U30784, U30848); base_impls!(U30784, 481); div_impls!(U30784, U61568); multiply_impls!(U30784, U61568); shift_impls!(U30784, 481); subtraction_impls!(U30784, 481); conversion_impls!(U30784, U30848); conversion_impls!(U30784, U61568); addition_impls!(U30848, U30912); base_impls!(U30848, 482); subtraction_impls!(U30848, 482); conversion_impls!(U30848, U30912); base_impls!(U30912, 483); addition_impls!(U32768, U32832); base_impls!(U32768, 512); subtraction_impls!(U32768, 512); conversion_impls!(U32768, U32832); base_impls!(U32832, 513); addition_impls!(U32896, U32960); base_impls!(U32896, 514); subtraction_impls!(U32896, 514); conversion_impls!(U32896, U32960); base_impls!(U32960, 515); addition_impls!(U61440, U61504); base_impls!(U61440, 960); subtraction_impls!(U61440, 960); conversion_impls!(U61440, U61504); base_impls!(U61504, 961); addition_impls!(U61568, U61632); base_impls!(U61568, 962); subtraction_impls!(U61568, 962); conversion_impls!(U61568, U61632); base_impls!(U61632, 963); #[cfg(test)] mod tests { mod base { use super::super::*; use testing::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!(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!(U1536, u1536); generate_base_tests!(U1600, u1600); generate_base_tests!(U1664, u1664); generate_base_tests!(U1728, u1728); 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!(U3072, u3072); generate_base_tests!(U3136, u3136); generate_base_tests!(U4096, u4096); generate_base_tests!(U4160, u4160); generate_base_tests!(U4224, u4224); generate_base_tests!(U4288, u4288); generate_base_tests!(U6144, u6144); generate_base_tests!(U6208, u6208); generate_base_tests!(U6272, u6272); generate_base_tests!(U7680, u7680); generate_base_tests!(U7744, u7744); generate_base_tests!(U8192, u8192); generate_base_tests!(U8256, u8256); generate_base_tests!(U8320, u8320); generate_base_tests!(U8384, u8384); generate_base_tests!(U12288, u12288); generate_base_tests!(U12352, u12352); 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!(U16384, u16384); generate_base_tests!(U16448, u16448); generate_base_tests!(U16512, u16512); generate_base_tests!(U16576, u16576); generate_base_tests!(U30720, u30720); generate_base_tests!(U30784, u30784); generate_base_tests!(U30848, u30848); generate_base_tests!(U30912, u30912); generate_base_tests!(U32768, u32768); generate_base_tests!(U32832, u32832); generate_base_tests!(U32896, u32896); generate_base_tests!(U32960, u32960); generate_base_tests!(U61440, u61440); generate_base_tests!(U61504, u61504); generate_base_tests!(U61568, u61568); generate_base_tests!(U61632, u61632); } 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!(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!(U1536, u1536); generate_conversion_tests!(U1600, u1600); generate_conversion_tests!(U1664, u1664); generate_conversion_tests!(U1728, u1728); 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!(U3072, u3072); generate_conversion_tests!(U3136, u3136); generate_conversion_tests!(U4096, u4096); generate_conversion_tests!(U4160, u4160); generate_conversion_tests!(U4224, u4224); generate_conversion_tests!(U4288, u4288); generate_conversion_tests!(U6144, u6144); generate_conversion_tests!(U6208, u6208); generate_conversion_tests!(U6272, u6272); generate_conversion_tests!(U7680, u7680); generate_conversion_tests!(U7744, u7744); generate_conversion_tests!(U8192, u8192); generate_conversion_tests!(U8256, u8256); generate_conversion_tests!(U8320, u8320); generate_conversion_tests!(U8384, u8384); generate_conversion_tests!(U12288, u12288); generate_conversion_tests!(U12352, u12352); 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!(U16384, u16384); generate_conversion_tests!(U16448, u16448); generate_conversion_tests!(U16512, u16512); generate_conversion_tests!(U16576, u16576); 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!(U32832, u32832); generate_conversion_tests!(U32896, u32896); generate_conversion_tests!(U32960, u32960); generate_conversion_tests!(U61440, u61440); generate_conversion_tests!(U61504, u61504); generate_conversion_tests!(U61568, u61568); generate_conversion_tests!(U61632, u61632); } 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!(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!(U1536, u1536); generate_codec_tests!(U1600, u1600); generate_codec_tests!(U1664, u1664); generate_codec_tests!(U1728, u1728); 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!(U3072, u3072); generate_codec_tests!(U3136, u3136); generate_codec_tests!(U4096, u4096); generate_codec_tests!(U4160, u4160); generate_codec_tests!(U4224, u4224); generate_codec_tests!(U4288, u4288); generate_codec_tests!(U6144, u6144); generate_codec_tests!(U6208, u6208); generate_codec_tests!(U6272, u6272); generate_codec_tests!(U7680, u7680); generate_codec_tests!(U7744, u7744); generate_codec_tests!(U8192, u8192); generate_codec_tests!(U8256, u8256); generate_codec_tests!(U8320, u8320); generate_codec_tests!(U8384, u8384); generate_codec_tests!(U12288, u12288); generate_codec_tests!(U12352, u12352); 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!(U16384, u16384); generate_codec_tests!(U16448, u16448); generate_codec_tests!(U16512, u16512); generate_codec_tests!(U16576, u16576); 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!(U32832, u32832); generate_codec_tests!(U32896, u32896); generate_codec_tests!(U32960, u32960); generate_codec_tests!(U61440, u61440); generate_codec_tests!(U61504, u61504); generate_codec_tests!(U61568, u61568); generate_codec_tests!(U61632, u61632); } mod cmp { use super::super::*; use testing::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!(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!(U1536, u1536); generate_cmp_tests!(U1600, u1600); generate_cmp_tests!(U1664, u1664); generate_cmp_tests!(U1728, u1728); 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!(U3072, u3072); generate_cmp_tests!(U3136, u3136); generate_cmp_tests!(U4096, u4096); generate_cmp_tests!(U4160, u4160); generate_cmp_tests!(U4224, u4224); generate_cmp_tests!(U4288, u4288); generate_cmp_tests!(U6144, u6144); generate_cmp_tests!(U6208, u6208); generate_cmp_tests!(U6272, u6272); generate_cmp_tests!(U7680, u7680); generate_cmp_tests!(U7744, u7744); generate_cmp_tests!(U8192, u8192); generate_cmp_tests!(U8256, u8256); generate_cmp_tests!(U8320, u8320); generate_cmp_tests!(U8384, u8384); generate_cmp_tests!(U12288, u12288); generate_cmp_tests!(U12352, u12352); 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!(U16384, u16384); generate_cmp_tests!(U16448, u16448); generate_cmp_tests!(U16512, u16512); generate_cmp_tests!(U16576, u16576); generate_cmp_tests!(U30720, u30720); generate_cmp_tests!(U30784, u30784); generate_cmp_tests!(U30848, u30848); generate_cmp_tests!(U30912, u30912); generate_cmp_tests!(U32768, u32768); generate_cmp_tests!(U32832, u32832); generate_cmp_tests!(U32896, u32896); generate_cmp_tests!(U32960, u32960); generate_cmp_tests!(U61440, u61440); generate_cmp_tests!(U61504, u61504); generate_cmp_tests!(U61568, u61568); generate_cmp_tests!(U61632, u61632); } mod sub { use super::super::*; use testing::run_test; generate_sub_tests!(U448, u448); generate_sub_tests!(U576, u576); generate_sub_tests!(U768, u768); generate_sub_tests!(U832, u832); generate_sub_tests!(U896, u896); generate_sub_tests!(U1024, u1024); generate_sub_tests!(U1088, u1088); generate_sub_tests!(U1152, u1152); generate_sub_tests!(U1216, u1216); generate_sub_tests!(U1536, u1536); generate_sub_tests!(U1664, u1664); generate_sub_tests!(U2048, u2048); generate_sub_tests!(U2112, u2112); generate_sub_tests!(U2176, u2176); generate_sub_tests!(U2304, u2304); generate_sub_tests!(U2432, u2432); generate_sub_tests!(U4096, u4096); generate_sub_tests!(U4160, u4160); generate_sub_tests!(U4224, u4224); generate_sub_tests!(U6208, u6208); generate_sub_tests!(U8192, u8192); generate_sub_tests!(U8256, u8256); generate_sub_tests!(U8320, u8320); generate_sub_tests!(U12288, u12288); generate_sub_tests!(U12416, u12416); generate_sub_tests!(U15424, u15424); generate_sub_tests!(U16384, u16384); generate_sub_tests!(U16448, u16448); generate_sub_tests!(U16512, u16512); generate_sub_tests!(U30720, u30720); generate_sub_tests!(U30784, u30784); generate_sub_tests!(U30848, u30848); generate_sub_tests!(U32768, u32768); generate_sub_tests!(U32896, u32896); generate_sub_tests!(U61440, u61440); generate_sub_tests!(U61568, u61568); } mod shiftl { use super::super::*; use testing::run_test; generate_shiftl_tests!(U384, u384); generate_shiftl_tests!(U448, u448); generate_shiftl_tests!(U512, u512); generate_shiftl_tests!(U576, u576); generate_shiftl_tests!(U768, u768); generate_shiftl_tests!(U832, u832); generate_shiftl_tests!(U1024, u1024); generate_shiftl_tests!(U1088, u1088); generate_shiftl_tests!(U1152, u1152); generate_shiftl_tests!(U1216, u1216); generate_shiftl_tests!(U2048, u2048); generate_shiftl_tests!(U2112, u2112); generate_shiftl_tests!(U4096, u4096); generate_shiftl_tests!(U4160, u4160); generate_shiftl_tests!(U6144, u6144); generate_shiftl_tests!(U6208, u6208); generate_shiftl_tests!(U8192, u8192); generate_shiftl_tests!(U8256, u8256); generate_shiftl_tests!(U15360, u15360); generate_shiftl_tests!(U15424, u15424); generate_shiftl_tests!(U16384, u16384); generate_shiftl_tests!(U16448, u16448); generate_shiftl_tests!(U30720, u30720); generate_shiftl_tests!(U30784, u30784); } mod shiftr { use super::super::*; use testing::run_test; generate_shiftr_tests!(U384, u384); generate_shiftr_tests!(U448, u448); generate_shiftr_tests!(U512, u512); generate_shiftr_tests!(U576, u576); generate_shiftr_tests!(U768, u768); generate_shiftr_tests!(U832, u832); generate_shiftr_tests!(U1024, u1024); generate_shiftr_tests!(U1088, u1088); generate_shiftr_tests!(U1152, u1152); generate_shiftr_tests!(U1216, u1216); generate_shiftr_tests!(U2048, u2048); generate_shiftr_tests!(U2112, u2112); generate_shiftr_tests!(U4096, u4096); generate_shiftr_tests!(U4160, u4160); generate_shiftr_tests!(U6144, u6144); generate_shiftr_tests!(U6208, u6208); generate_shiftr_tests!(U8192, u8192); generate_shiftr_tests!(U8256, u8256); generate_shiftr_tests!(U15360, u15360); generate_shiftr_tests!(U15424, u15424); generate_shiftr_tests!(U16384, u16384); generate_shiftr_tests!(U16448, u16448); generate_shiftr_tests!(U30720, u30720); generate_shiftr_tests!(U30784, u30784); } mod add { use super::super::*; use testing::run_test; generate_add_tests!(U448, u448, U512); generate_add_tests!(U576, u576, U640); generate_add_tests!(U768, u768, U832); generate_add_tests!(U832, u832, U896); generate_add_tests!(U896, u896, U960); 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!(U1536, u1536, U1600); generate_add_tests!(U1664, u1664, U1728); generate_add_tests!(U2048, u2048, U2112); generate_add_tests!(U2112, u2112, U2176); generate_add_tests!(U2176, u2176, U2240); generate_add_tests!(U2304, u2304, U2368); generate_add_tests!(U2432, u2432, U2496); generate_add_tests!(U4096, u4096, U4160); generate_add_tests!(U4160, u4160, U4224); generate_add_tests!(U4224, u4224, U4288); generate_add_tests!(U6208, u6208, U6272); generate_add_tests!(U8192, u8192, U8256); generate_add_tests!(U8256, u8256, U8320); generate_add_tests!(U8320, u8320, U8384); generate_add_tests!(U12288, u12288, U12352); generate_add_tests!(U12416, u12416, U12480); generate_add_tests!(U15424, u15424, U15488); generate_add_tests!(U16384, u16384, U16448); generate_add_tests!(U16448, u16448, U16512); generate_add_tests!(U16512, u16512, U16576); generate_add_tests!(U30720, u30720, U30784); generate_add_tests!(U30784, u30784, U30848); generate_add_tests!(U30848, u30848, U30912); generate_add_tests!(U32768, u32768, U32832); generate_add_tests!(U32896, u32896, U32960); generate_add_tests!(U61440, u61440, U61504); generate_add_tests!(U61568, u61568, U61632); } mod mul { use super::super::*; use testing::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!(U1024, u1024, U2048); generate_mul_tests!(U1088, u1088, U2176); generate_mul_tests!(U1152, u1152, U2304); generate_mul_tests!(U1216, u1216, U2432); generate_mul_tests!(U2048, u2048, U4096); generate_mul_tests!(U2112, u2112, U4224); 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!(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!(U15360, u15360, U30720); generate_mul_tests!(U15424, u15424, U30848); generate_mul_tests!(U16384, u16384, U32768); generate_mul_tests!(U16448, u16448, U32896); generate_mul_tests!(U30720, u30720, U61440); generate_mul_tests!(U30784, u30784, U61568); } mod div { use super::super::*; use testing::run_test; generate_div_tests!(U384, u384); generate_div_tests!(U448, u448); generate_div_tests!(U512, u512); generate_div_tests!(U576, u576); generate_div_tests!(U768, u768); generate_div_tests!(U832, u832); generate_div_tests!(U1024, u1024); generate_div_tests!(U1088, u1088); generate_div_tests!(U1152, u1152); generate_div_tests!(U1216, u1216); generate_div_tests!(U2048, u2048); generate_div_tests!(U2112, u2112); generate_div_tests!(U4096, u4096); generate_div_tests!(U4160, u4160); generate_div_tests!(U6144, u6144); generate_div_tests!(U6208, u6208); generate_div_tests!(U8192, u8192); generate_div_tests!(U8256, u8256); generate_div_tests!(U15360, u15360); generate_div_tests!(U15424, u15424); generate_div_tests!(U16384, u16384); generate_div_tests!(U16448, u16448); generate_div_tests!(U30720, u30720); generate_div_tests!(U30784, u30784); } mod barrett_gen { use super::super::*; use testing::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!(U512, u512, U576); generate_barrett_gen_tests!(U576, u576, U640); generate_barrett_gen_tests!(U1024, u1024, U1088); generate_barrett_gen_tests!(U2048, u2048, U2112); generate_barrett_gen_tests!(U3072, u3072, U3136); generate_barrett_gen_tests!(U4096, u4096, U4160); generate_barrett_gen_tests!(U7680, u7680, U7744); generate_barrett_gen_tests!(U8192, u8192, U8256); generate_barrett_gen_tests!(U15360, u15360, U15424); } mod barrett_red { use super::super::*; use testing::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!(U512, u512, U576, U1024); generate_barrett_red_tests!(U576, u576, U640, U1152); generate_barrett_red_tests!(U1024, u1024, U1088, U2048); generate_barrett_red_tests!(U2048, u2048, U2112, U4096); generate_barrett_red_tests!(U3072, u3072, U3136, U6144); generate_barrett_red_tests!(U4096, u4096, U4160, U8192); generate_barrett_red_tests!(U7680, u7680, U7744, U15360); generate_barrett_red_tests!(U8192, u8192, U8256, U16384); generate_barrett_red_tests!(U15360, u15360, U15424, U30720); } mod modsq { use super::super::*; use testing::run_test; generate_modsq_tests!(U192, u192); generate_modsq_tests!(U256, u256); generate_modsq_tests!(U384, u384); generate_modsq_tests!(U512, u512); generate_modsq_tests!(U576, u576); generate_modsq_tests!(U1024, u1024); generate_modsq_tests!(U2048, u2048); generate_modsq_tests!(U3072, u3072); generate_modsq_tests!(U4096, u4096); generate_modsq_tests!(U7680, u7680); generate_modsq_tests!(U8192, u8192); generate_modsq_tests!(U15360, u15360); } mod modmul { use super::super::*; use testing::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!(U2048, u2048); generate_modmul_tests!(U3072, u3072); generate_modmul_tests!(U4096, u4096); generate_modmul_tests!(U7680, u7680); generate_modmul_tests!(U8192, u8192); generate_modmul_tests!(U15360, u15360); } mod modexp { use super::super::*; use testing::run_test; generate_modexp_tests!(U192, u192); generate_modexp_tests!(U256, u256); generate_modexp_tests!(U384, u384); generate_modexp_tests!(U512, u512); generate_modexp_tests!(U576, u576); generate_modexp_tests!(U1024, u1024); generate_modexp_tests!(U2048, u2048); generate_modexp_tests!(U3072, u3072); generate_modexp_tests!(U4096, u4096); generate_modexp_tests!(U7680, u7680); generate_modexp_tests!(U8192, u8192); generate_modexp_tests!(U15360, u15360); } mod square { use super::super::*; use testing::run_test; generate_square_tests!(U192, u192, U384); generate_square_tests!(U256, u256, U512); generate_square_tests!(U384, u384, U768); generate_square_tests!(U512, u512, U1024); generate_square_tests!(U576, u576, U1152); generate_square_tests!(U1024, u1024, U2048); generate_square_tests!(U2048, u2048, U4096); generate_square_tests!(U3072, u3072, U6144); generate_square_tests!(U4096, u4096, U8192); generate_square_tests!(U7680, u7680, U15360); generate_square_tests!(U8192, u8192, U16384); generate_square_tests!(U15360, u15360, U30720); } }