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); } }