Clean up requirements.
This commit is contained in:
@@ -3,10 +3,11 @@ signed_impls!(I192, U192);
|
||||
subtraction_impls!(I192, I256, U256);
|
||||
mul_impls!(I192, I384);
|
||||
div_impls!(I192, U192);
|
||||
smodinv_impls!(I192, I256);
|
||||
conversion_impls!(I192, U192, I256, U256);
|
||||
conversion_impls!(I192, U192, I384, U384);
|
||||
conversion_impls!(I192, U192, I512, U512);
|
||||
egcd_impls!(I256, U192, I192);
|
||||
egcd_impls!(I256, U192, I192, I512);
|
||||
modinv_impls!(U192, I256, U256);
|
||||
moddiv_impls!(I256, I512);
|
||||
add_impls!(I256, I320, U320);
|
||||
@@ -16,10 +17,12 @@ shift_impls!(I256, U256);
|
||||
subtraction_impls!(I256, I320, U320);
|
||||
mul_impls!(I256, I512);
|
||||
div_impls!(I256, U256);
|
||||
smodinv_impls!(I256, I320);
|
||||
conversion_impls!(I256, U256, I320, U320);
|
||||
conversion_impls!(I256, U256, I512, U512);
|
||||
conversion_impls!(I256, U256, I576, U576);
|
||||
conversion_impls!(I256, U256, I640, U640);
|
||||
egcd_impls!(I320, U256, I256);
|
||||
egcd_impls!(I320, U256, I256, I640);
|
||||
modinv_impls!(U256, I320, U320);
|
||||
add_impls!(I320, I384, U384);
|
||||
signed_impls!(I320, U320);
|
||||
@@ -27,17 +30,20 @@ cmp_impls!(I320);
|
||||
shift_impls!(I320, U320);
|
||||
subtraction_impls!(I320, I384, U384);
|
||||
mul_impls!(I320, I640);
|
||||
div_impls!(I320, U320);
|
||||
conversion_impls!(I320, U320, I384, U384);
|
||||
conversion_impls!(I320, U320, I640, U640);
|
||||
conversion_impls!(I320, U320, I704, U704);
|
||||
moddiv_impls!(I384, I768);
|
||||
signed_impls!(I384, U384);
|
||||
subtraction_impls!(I384, I448, U448);
|
||||
mul_impls!(I384, I768);
|
||||
div_impls!(I384, U384);
|
||||
smodinv_impls!(I384, I448);
|
||||
conversion_impls!(I384, U384, I448, U448);
|
||||
conversion_impls!(I384, U384, I768, U768);
|
||||
conversion_impls!(I384, U384, I896, U896);
|
||||
egcd_impls!(I448, U384, I384);
|
||||
egcd_impls!(I448, U384, I384, I896);
|
||||
modinv_impls!(U384, I448, U448);
|
||||
add_impls!(I448, I512, U512);
|
||||
signed_impls!(I448, U448);
|
||||
@@ -45,15 +51,17 @@ cmp_impls!(I448);
|
||||
shift_impls!(I448, U448);
|
||||
subtraction_impls!(I448, I512, U512);
|
||||
mul_impls!(I448, I896);
|
||||
div_impls!(I448, U448);
|
||||
conversion_impls!(I448, U448, I512, U512);
|
||||
conversion_impls!(I448, U448, I896, U896);
|
||||
conversion_impls!(I448, U448, I960, U960);
|
||||
signed_impls!(I512, U512);
|
||||
subtraction_impls!(I512, I576, U576);
|
||||
mul_impls!(I512, I1024);
|
||||
div_impls!(I512, U512);
|
||||
conversion_impls!(I512, U512, I576, U576);
|
||||
conversion_impls!(I512, U512, I1024, U1024);
|
||||
egcd_impls!(I576, U512, I512);
|
||||
egcd_impls!(I576, U512, I512, I1152);
|
||||
modinv_impls!(U512, I576, U576);
|
||||
moddiv_impls!(I576, I1152);
|
||||
add_impls!(I576, I640, U640);
|
||||
@@ -63,10 +71,12 @@ shift_impls!(I576, U576);
|
||||
subtraction_impls!(I576, I640, U640);
|
||||
mul_impls!(I576, I1152);
|
||||
div_impls!(I576, U576);
|
||||
smodinv_impls!(I576, I640);
|
||||
conversion_impls!(I576, U576, I640, U640);
|
||||
conversion_impls!(I576, U576, I1152, U1152);
|
||||
conversion_impls!(I576, U576, I1216, U1216);
|
||||
conversion_impls!(I576, U576, I1280, U1280);
|
||||
egcd_impls!(I640, U576, I576);
|
||||
egcd_impls!(I640, U576, I576, I1280);
|
||||
modinv_impls!(U576, I640, U640);
|
||||
add_impls!(I640, I704, U704);
|
||||
signed_impls!(I640, U640);
|
||||
@@ -77,6 +87,7 @@ mul_impls!(I640, I1280);
|
||||
div_impls!(I640, U640);
|
||||
conversion_impls!(I640, U640, I704, U704);
|
||||
conversion_impls!(I640, U640, I1280, U1280);
|
||||
conversion_impls!(I640, U640, I1344, U1344);
|
||||
signed_impls!(I704, U704);
|
||||
signed_impls!(I768, U768);
|
||||
div_impls!(I768, U768);
|
||||
@@ -89,16 +100,23 @@ conversion_impls!(I896, U896, I1792, U1792);
|
||||
signed_impls!(I960, U960);
|
||||
signed_impls!(I1024, U1024);
|
||||
conversion_impls!(I1024, U1024, I1088, U1088);
|
||||
egcd_impls!(I1088, U1024, I1024);
|
||||
egcd_impls!(I1088, U1024, I1024, I2176);
|
||||
modinv_impls!(U1024, I1088, U1088);
|
||||
add_impls!(I1088, I1152, U1152);
|
||||
signed_impls!(I1088, U1088);
|
||||
cmp_impls!(I1088);
|
||||
shift_impls!(I1088, U1088);
|
||||
subtraction_impls!(I1088, I1152, U1152);
|
||||
mul_impls!(I1088, I2176);
|
||||
div_impls!(I1088, U1088);
|
||||
conversion_impls!(I1088, U1088, I1152, U1152);
|
||||
conversion_impls!(I1088, U1088, I2176, U2176);
|
||||
conversion_impls!(I1088, U1088, I2240, U2240);
|
||||
signed_impls!(I1152, U1152);
|
||||
subtraction_impls!(I1152, I1216, U1216);
|
||||
div_impls!(I1152, U1152);
|
||||
conversion_impls!(I1152, U1152, I1216, U1216);
|
||||
signed_impls!(I1216, U1216);
|
||||
signed_impls!(I1280, U1280);
|
||||
subtraction_impls!(I1280, I1344, U1344);
|
||||
mul_impls!(I1280, I2560);
|
||||
@@ -108,81 +126,136 @@ conversion_impls!(I1280, U1280, I2560, U2560);
|
||||
signed_impls!(I1344, U1344);
|
||||
signed_impls!(I1536, U1536);
|
||||
conversion_impls!(I1536, U1536, I1600, U1600);
|
||||
egcd_impls!(I1600, U1536, I1536);
|
||||
egcd_impls!(I1600, U1536, I1536, I3200);
|
||||
add_impls!(I1600, I1664, U1664);
|
||||
signed_impls!(I1600, U1600);
|
||||
cmp_impls!(I1600);
|
||||
shift_impls!(I1600, U1600);
|
||||
subtraction_impls!(I1600, I1664, U1664);
|
||||
mul_impls!(I1600, I3200);
|
||||
div_impls!(I1600, U1600);
|
||||
conversion_impls!(I1600, U1600, I1664, U1664);
|
||||
conversion_impls!(I1600, U1600, I3200, U3200);
|
||||
conversion_impls!(I1600, U1600, I3264, U3264);
|
||||
signed_impls!(I1664, U1664);
|
||||
signed_impls!(I1792, U1792);
|
||||
signed_impls!(I2048, U2048);
|
||||
conversion_impls!(I2048, U2048, I2112, U2112);
|
||||
egcd_impls!(I2112, U2048, I2048);
|
||||
egcd_impls!(I2112, U2048, I2048, I4224);
|
||||
modinv_impls!(U2048, I2112, U2112);
|
||||
add_impls!(I2112, I2176, U2176);
|
||||
signed_impls!(I2112, U2112);
|
||||
cmp_impls!(I2112);
|
||||
shift_impls!(I2112, U2112);
|
||||
subtraction_impls!(I2112, I2176, U2176);
|
||||
mul_impls!(I2112, I4224);
|
||||
div_impls!(I2112, U2112);
|
||||
conversion_impls!(I2112, U2112, I2176, U2176);
|
||||
conversion_impls!(I2112, U2112, I4224, U4224);
|
||||
conversion_impls!(I2112, U2112, I4288, U4288);
|
||||
signed_impls!(I2176, U2176);
|
||||
subtraction_impls!(I2176, I2240, U2240);
|
||||
conversion_impls!(I2176, U2176, I2240, U2240);
|
||||
signed_impls!(I2240, U2240);
|
||||
signed_impls!(I2560, U2560);
|
||||
signed_impls!(I3072, U3072);
|
||||
conversion_impls!(I3072, U3072, I3136, U3136);
|
||||
egcd_impls!(I3136, U3072, I3072);
|
||||
egcd_impls!(I3136, U3072, I3072, I6272);
|
||||
modinv_impls!(U3072, I3136, U3136);
|
||||
add_impls!(I3136, I3200, U3200);
|
||||
signed_impls!(I3136, U3136);
|
||||
cmp_impls!(I3136);
|
||||
shift_impls!(I3136, U3136);
|
||||
subtraction_impls!(I3136, I3200, U3200);
|
||||
mul_impls!(I3136, I6272);
|
||||
div_impls!(I3136, U3136);
|
||||
conversion_impls!(I3136, U3136, I3200, U3200);
|
||||
conversion_impls!(I3136, U3136, I6272, U6272);
|
||||
conversion_impls!(I3136, U3136, I6336, U6336);
|
||||
signed_impls!(I3200, U3200);
|
||||
subtraction_impls!(I3200, I3264, U3264);
|
||||
conversion_impls!(I3200, U3200, I3264, U3264);
|
||||
signed_impls!(I3264, U3264);
|
||||
signed_impls!(I4096, U4096);
|
||||
conversion_impls!(I4096, U4096, I4160, U4160);
|
||||
egcd_impls!(I4160, U4096, I4096);
|
||||
egcd_impls!(I4160, U4096, I4096, I8320);
|
||||
modinv_impls!(U4096, I4160, U4160);
|
||||
add_impls!(I4160, I4224, U4224);
|
||||
signed_impls!(I4160, U4160);
|
||||
cmp_impls!(I4160);
|
||||
shift_impls!(I4160, U4160);
|
||||
subtraction_impls!(I4160, I4224, U4224);
|
||||
mul_impls!(I4160, I8320);
|
||||
div_impls!(I4160, U4160);
|
||||
conversion_impls!(I4160, U4160, I4224, U4224);
|
||||
conversion_impls!(I4160, U4160, I8320, U8320);
|
||||
conversion_impls!(I4160, U4160, I8384, U8384);
|
||||
signed_impls!(I4224, U4224);
|
||||
subtraction_impls!(I4224, I4288, U4288);
|
||||
conversion_impls!(I4224, U4224, I4288, U4288);
|
||||
signed_impls!(I4288, U4288);
|
||||
signed_impls!(I6272, U6272);
|
||||
subtraction_impls!(I6272, I6336, U6336);
|
||||
conversion_impls!(I6272, U6272, I6336, U6336);
|
||||
signed_impls!(I6336, U6336);
|
||||
signed_impls!(I7680, U7680);
|
||||
conversion_impls!(I7680, U7680, I7744, U7744);
|
||||
egcd_impls!(I7744, U7680, I7680);
|
||||
egcd_impls!(I7744, U7680, I7680, I15488);
|
||||
add_impls!(I7744, I7808, U7808);
|
||||
signed_impls!(I7744, U7744);
|
||||
cmp_impls!(I7744);
|
||||
shift_impls!(I7744, U7744);
|
||||
subtraction_impls!(I7744, I7808, U7808);
|
||||
mul_impls!(I7744, I15488);
|
||||
div_impls!(I7744, U7744);
|
||||
conversion_impls!(I7744, U7744, I7808, U7808);
|
||||
conversion_impls!(I7744, U7744, I15488, U15488);
|
||||
conversion_impls!(I7744, U7744, I15552, U15552);
|
||||
signed_impls!(I7808, U7808);
|
||||
signed_impls!(I8192, U8192);
|
||||
conversion_impls!(I8192, U8192, I8256, U8256);
|
||||
egcd_impls!(I8256, U8192, I8192);
|
||||
egcd_impls!(I8256, U8192, I8192, I16512);
|
||||
modinv_impls!(U8192, I8256, U8256);
|
||||
add_impls!(I8256, I8320, U8320);
|
||||
signed_impls!(I8256, U8256);
|
||||
cmp_impls!(I8256);
|
||||
shift_impls!(I8256, U8256);
|
||||
subtraction_impls!(I8256, I8320, U8320);
|
||||
mul_impls!(I8256, I16512);
|
||||
div_impls!(I8256, U8256);
|
||||
conversion_impls!(I8256, U8256, I8320, U8320);
|
||||
conversion_impls!(I8256, U8256, I16512, U16512);
|
||||
conversion_impls!(I8256, U8256, I16576, U16576);
|
||||
signed_impls!(I8320, U8320);
|
||||
subtraction_impls!(I8320, I8384, U8384);
|
||||
conversion_impls!(I8320, U8320, I8384, U8384);
|
||||
signed_impls!(I8384, U8384);
|
||||
signed_impls!(I15360, U15360);
|
||||
conversion_impls!(I15360, U15360, I15424, U15424);
|
||||
egcd_impls!(I15424, U15360, I15360);
|
||||
egcd_impls!(I15424, U15360, I15360, I30848);
|
||||
modinv_impls!(U15360, I15424, U15424);
|
||||
add_impls!(I15424, I15488, U15488);
|
||||
signed_impls!(I15424, U15424);
|
||||
cmp_impls!(I15424);
|
||||
shift_impls!(I15424, U15424);
|
||||
subtraction_impls!(I15424, I15488, U15488);
|
||||
mul_impls!(I15424, I30848);
|
||||
div_impls!(I15424, U15424);
|
||||
conversion_impls!(I15424, U15424, I15488, U15488);
|
||||
conversion_impls!(I15424, U15424, I30848, U30848);
|
||||
conversion_impls!(I15424, U15424, I30912, U30912);
|
||||
signed_impls!(I15488, U15488);
|
||||
subtraction_impls!(I15488, I15552, U15552);
|
||||
conversion_impls!(I15488, U15488, I15552, U15552);
|
||||
signed_impls!(I15552, U15552);
|
||||
signed_impls!(I16512, U16512);
|
||||
subtraction_impls!(I16512, I16576, U16576);
|
||||
conversion_impls!(I16512, U16512, I16576, U16576);
|
||||
signed_impls!(I16576, U16576);
|
||||
signed_impls!(I30848, U30848);
|
||||
subtraction_impls!(I30848, I30912, U30912);
|
||||
conversion_impls!(I30848, U30848, I30912, U30912);
|
||||
signed_impls!(I30912, U30912);
|
||||
|
||||
|
||||
#[cfg(test)]
|
||||
@@ -219,14 +292,23 @@ mod tests {
|
||||
generate_sigsub_tests!(I640, U640, i640, I704, U704);
|
||||
generate_sigsub_tests!(I896, U896, i896, I960, U960);
|
||||
generate_sigsub_tests!(I1088, U1088, i1088, I1152, U1152);
|
||||
generate_sigsub_tests!(I1152, U1152, i1152, I1216, U1216);
|
||||
generate_sigsub_tests!(I1280, U1280, i1280, I1344, U1344);
|
||||
generate_sigsub_tests!(I1600, U1600, i1600, I1664, U1664);
|
||||
generate_sigsub_tests!(I2112, U2112, i2112, I2176, U2176);
|
||||
generate_sigsub_tests!(I2176, U2176, i2176, I2240, U2240);
|
||||
generate_sigsub_tests!(I3136, U3136, i3136, I3200, U3200);
|
||||
generate_sigsub_tests!(I3200, U3200, i3200, I3264, U3264);
|
||||
generate_sigsub_tests!(I4160, U4160, i4160, I4224, U4224);
|
||||
generate_sigsub_tests!(I4224, U4224, i4224, I4288, U4288);
|
||||
generate_sigsub_tests!(I6272, U6272, i6272, I6336, U6336);
|
||||
generate_sigsub_tests!(I7744, U7744, i7744, I7808, U7808);
|
||||
generate_sigsub_tests!(I8256, U8256, i8256, I8320, U8320);
|
||||
generate_sigsub_tests!(I8320, U8320, i8320, I8384, U8384);
|
||||
generate_sigsub_tests!(I15424, U15424, i15424, I15488, U15488);
|
||||
generate_sigsub_tests!(I15488, U15488, i15488, I15552, U15552);
|
||||
generate_sigsub_tests!(ignore I16512, U16512, i16512, I16576, U16576);
|
||||
generate_sigsub_tests!(ignore I30848, U30848, i30848, I30912, U30912);
|
||||
}
|
||||
mod signed {
|
||||
use super::super::*;
|
||||
@@ -247,6 +329,7 @@ mod tests {
|
||||
generate_signed_tests!(I1024, U1024, i1024);
|
||||
generate_signed_tests!(I1088, U1088, i1088);
|
||||
generate_signed_tests!(I1152, U1152, i1152);
|
||||
generate_signed_tests!(I1216, U1216, i1216);
|
||||
generate_signed_tests!(I1280, U1280, i1280);
|
||||
generate_signed_tests!(I1344, U1344, i1344);
|
||||
generate_signed_tests!(I1536, U1536, i1536);
|
||||
@@ -256,22 +339,33 @@ mod tests {
|
||||
generate_signed_tests!(I2048, U2048, i2048);
|
||||
generate_signed_tests!(I2112, U2112, i2112);
|
||||
generate_signed_tests!(I2176, U2176, i2176);
|
||||
generate_signed_tests!(I2240, U2240, i2240);
|
||||
generate_signed_tests!(I2560, U2560, i2560);
|
||||
generate_signed_tests!(I3072, U3072, i3072);
|
||||
generate_signed_tests!(I3136, U3136, i3136);
|
||||
generate_signed_tests!(I3200, U3200, i3200);
|
||||
generate_signed_tests!(I3264, U3264, i3264);
|
||||
generate_signed_tests!(I4096, U4096, i4096);
|
||||
generate_signed_tests!(I4160, U4160, i4160);
|
||||
generate_signed_tests!(I4224, U4224, i4224);
|
||||
generate_signed_tests!(I4288, U4288, i4288);
|
||||
generate_signed_tests!(I6272, U6272, i6272);
|
||||
generate_signed_tests!(I6336, U6336, i6336);
|
||||
generate_signed_tests!(I7680, U7680, i7680);
|
||||
generate_signed_tests!(I7744, U7744, i7744);
|
||||
generate_signed_tests!(I7808, U7808, i7808);
|
||||
generate_signed_tests!(I8192, U8192, i8192);
|
||||
generate_signed_tests!(I8256, U8256, i8256);
|
||||
generate_signed_tests!(I8320, U8320, i8320);
|
||||
generate_signed_tests!(I8384, U8384, i8384);
|
||||
generate_signed_tests!(I15360, U15360, i15360);
|
||||
generate_signed_tests!(I15424, U15424, i15424);
|
||||
generate_signed_tests!(I15488, U15488, i15488);
|
||||
generate_signed_tests!(I15552, U15552, i15552);
|
||||
generate_signed_tests!(I16512, U16512, i16512);
|
||||
generate_signed_tests!(I16576, U16576, i16576);
|
||||
generate_signed_tests!(I30848, U30848, i30848);
|
||||
generate_signed_tests!(I30912, U30912, i30912);
|
||||
}
|
||||
mod sigconversion {
|
||||
generate_sigconversion_tests!(I192, U192, i192);
|
||||
@@ -289,6 +383,7 @@ mod tests {
|
||||
generate_sigconversion_tests!(I1024, U1024, i1024);
|
||||
generate_sigconversion_tests!(I1088, U1088, i1088);
|
||||
generate_sigconversion_tests!(I1152, U1152, i1152);
|
||||
generate_sigconversion_tests!(I1216, U1216, i1216);
|
||||
generate_sigconversion_tests!(I1280, U1280, i1280);
|
||||
generate_sigconversion_tests!(I1344, U1344, i1344);
|
||||
generate_sigconversion_tests!(I1536, U1536, i1536);
|
||||
@@ -298,22 +393,33 @@ mod tests {
|
||||
generate_sigconversion_tests!(I2048, U2048, i2048);
|
||||
generate_sigconversion_tests!(I2112, U2112, i2112);
|
||||
generate_sigconversion_tests!(I2176, U2176, i2176);
|
||||
generate_sigconversion_tests!(I2240, U2240, i2240);
|
||||
generate_sigconversion_tests!(I2560, U2560, i2560);
|
||||
generate_sigconversion_tests!(I3072, U3072, i3072);
|
||||
generate_sigconversion_tests!(I3136, U3136, i3136);
|
||||
generate_sigconversion_tests!(I3200, U3200, i3200);
|
||||
generate_sigconversion_tests!(I3264, U3264, i3264);
|
||||
generate_sigconversion_tests!(I4096, U4096, i4096);
|
||||
generate_sigconversion_tests!(I4160, U4160, i4160);
|
||||
generate_sigconversion_tests!(I4224, U4224, i4224);
|
||||
generate_sigconversion_tests!(I4288, U4288, i4288);
|
||||
generate_sigconversion_tests!(I6272, U6272, i6272);
|
||||
generate_sigconversion_tests!(I6336, U6336, i6336);
|
||||
generate_sigconversion_tests!(I7680, U7680, i7680);
|
||||
generate_sigconversion_tests!(I7744, U7744, i7744);
|
||||
generate_sigconversion_tests!(I7808, U7808, i7808);
|
||||
generate_sigconversion_tests!(I8192, U8192, i8192);
|
||||
generate_sigconversion_tests!(I8256, U8256, i8256);
|
||||
generate_sigconversion_tests!(I8320, U8320, i8320);
|
||||
generate_sigconversion_tests!(I8384, U8384, i8384);
|
||||
generate_sigconversion_tests!(I15360, U15360, i15360);
|
||||
generate_sigconversion_tests!(I15424, U15424, i15424);
|
||||
generate_sigconversion_tests!(I15488, U15488, i15488);
|
||||
generate_sigconversion_tests!(I15552, U15552, i15552);
|
||||
generate_sigconversion_tests!(I16512, U16512, i16512);
|
||||
generate_sigconversion_tests!(I16576, U16576, i16576);
|
||||
generate_sigconversion_tests!(I30848, U30848, i30848);
|
||||
generate_sigconversion_tests!(I30912, U30912, i30912);
|
||||
}
|
||||
mod sigcmp {
|
||||
use super::super::*;
|
||||
@@ -346,7 +452,15 @@ mod tests {
|
||||
generate_sigmul_tests!(I576, U576, i576, I1152, U1152);
|
||||
generate_sigmul_tests!(I640, U640, i640, I1280, U1280);
|
||||
generate_sigmul_tests!(I896, U896, i896, I1792, U1792);
|
||||
generate_sigmul_tests!(I1088, U1088, i1088, I2176, U2176);
|
||||
generate_sigmul_tests!(I1280, U1280, i1280, I2560, U2560);
|
||||
generate_sigmul_tests!(I1600, U1600, i1600, I3200, U3200);
|
||||
generate_sigmul_tests!(I2112, U2112, i2112, I4224, U4224);
|
||||
generate_sigmul_tests!(I3136, U3136, i3136, I6272, U6272);
|
||||
generate_sigmul_tests!(I4160, U4160, i4160, I8320, U8320);
|
||||
generate_sigmul_tests!(I7744, U7744, i7744, I15488, U15488);
|
||||
generate_sigmul_tests!(I8256, U8256, i8256, I16512, U16512);
|
||||
generate_sigmul_tests!(ignore I15424, U15424, i15424, I30848, U30848);
|
||||
}
|
||||
mod sigdiv {
|
||||
use super::super::*;
|
||||
@@ -354,14 +468,24 @@ mod tests {
|
||||
|
||||
generate_sigdiv_tests!(I192, U192, i192);
|
||||
generate_sigdiv_tests!(I256, U256, i256);
|
||||
generate_sigdiv_tests!(I320, U320, i320);
|
||||
generate_sigdiv_tests!(I384, U384, i384);
|
||||
generate_sigdiv_tests!(I448, U448, i448);
|
||||
generate_sigdiv_tests!(I512, U512, i512);
|
||||
generate_sigdiv_tests!(I576, U576, i576);
|
||||
generate_sigdiv_tests!(I640, U640, i640);
|
||||
generate_sigdiv_tests!(I768, U768, i768);
|
||||
generate_sigdiv_tests!(I896, U896, i896);
|
||||
generate_sigdiv_tests!(I1088, U1088, i1088);
|
||||
generate_sigdiv_tests!(I1152, U1152, i1152);
|
||||
generate_sigdiv_tests!(I1280, U1280, i1280);
|
||||
generate_sigdiv_tests!(I1600, U1600, i1600);
|
||||
generate_sigdiv_tests!(ignore I2112, U2112, i2112);
|
||||
generate_sigdiv_tests!(ignore I3136, U3136, i3136);
|
||||
generate_sigdiv_tests!(ignore I4160, U4160, i4160);
|
||||
generate_sigdiv_tests!(ignore I7744, U7744, i7744);
|
||||
generate_sigdiv_tests!(ignore I8256, U8256, i8256);
|
||||
generate_sigdiv_tests!(ignore I15424, U15424, i15424);
|
||||
}
|
||||
mod sigshiftl {
|
||||
use super::super::*;
|
||||
@@ -442,4 +566,13 @@ mod tests {
|
||||
generate_modinv_tests!(ignore I8192, U8192, i8192);
|
||||
generate_modinv_tests!(ignore I15360, U15360, i15360);
|
||||
}
|
||||
mod smodinv {
|
||||
use super::super::*;
|
||||
use testing::{build_test_path,run_test};
|
||||
|
||||
generate_smodinv_tests!(I192, U192, i192);
|
||||
generate_smodinv_tests!(I256, U256, i256);
|
||||
generate_smodinv_tests!(I384, U384, i384);
|
||||
generate_smodinv_tests!(I576, U576, i576);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,6 +47,7 @@ prime_gen_impls!(U256);
|
||||
addition_impls!(U320, U384);
|
||||
base_impls!(U320, 5);
|
||||
random_impls!(U320, UniformU320);
|
||||
div_impls!(U320, U640);
|
||||
multiply_impls!(U320, U640);
|
||||
shift_impls!(U320, 5);
|
||||
subtraction_impls!(U320, 5);
|
||||
@@ -54,6 +55,7 @@ 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);
|
||||
@@ -78,6 +80,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);
|
||||
@@ -122,6 +125,7 @@ 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);
|
||||
@@ -185,6 +189,7 @@ 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);
|
||||
@@ -233,6 +238,7 @@ prime_gen_impls!(U1536);
|
||||
addition_impls!(U1600, U1664);
|
||||
base_impls!(U1600, 25);
|
||||
random_impls!(U1600, UniformU1600);
|
||||
div_impls!(U1600, U3200);
|
||||
multiply_impls!(U1600, U3200);
|
||||
shift_impls!(U1600, 25);
|
||||
subtraction_impls!(U1600, 25);
|
||||
@@ -240,6 +246,7 @@ conversion_impls!(U1600, U1664);
|
||||
conversion_impls!(U1600, U3072);
|
||||
conversion_impls!(U1600, U3136);
|
||||
conversion_impls!(U1600, U3200);
|
||||
conversion_impls!(U1600, U3264);
|
||||
base_impls!(U1664, 26);
|
||||
random_impls!(U1664, UniformU1664);
|
||||
subtraction_impls!(U1664, 26);
|
||||
@@ -277,10 +284,16 @@ 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);
|
||||
subtraction_impls!(U2304, 36);
|
||||
@@ -321,10 +334,16 @@ 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);
|
||||
addition_impls!(U4096, U4160);
|
||||
base_impls!(U4096, 64);
|
||||
random_impls!(U4096, UniformU4096);
|
||||
@@ -353,13 +372,19 @@ 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);
|
||||
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);
|
||||
addition_impls!(U6144, U6208);
|
||||
base_impls!(U6144, 96);
|
||||
random_impls!(U6144, UniformU6144);
|
||||
@@ -377,10 +402,15 @@ multiply_impls!(U6208, U12416);
|
||||
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);
|
||||
@@ -400,6 +430,7 @@ prime_gen_impls!(U7680);
|
||||
addition_impls!(U7744, U7808);
|
||||
base_impls!(U7744, 121);
|
||||
random_impls!(U7744, UniformU7744);
|
||||
div_impls!(U7744, U15488);
|
||||
multiply_impls!(U7744, U15488);
|
||||
shift_impls!(U7744, 121);
|
||||
subtraction_impls!(U7744, 121);
|
||||
@@ -407,6 +438,7 @@ 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);
|
||||
@@ -436,13 +468,19 @@ 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);
|
||||
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);
|
||||
@@ -481,10 +519,16 @@ 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);
|
||||
@@ -501,10 +545,15 @@ multiply_impls!(U16448, U32896);
|
||||
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);
|
||||
@@ -527,10 +576,15 @@ multiply_impls!(U30784, U61568);
|
||||
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);
|
||||
@@ -577,38 +631,46 @@ mod tests {
|
||||
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!(U2432, u2432);
|
||||
generate_base_tests!(U2560, u2560);
|
||||
generate_base_tests!(U3072, u3072);
|
||||
generate_base_tests!(U3136, u3136);
|
||||
generate_base_tests!(U3200, u3200);
|
||||
generate_base_tests!(U3264, u3264);
|
||||
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!(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!(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);
|
||||
@@ -641,38 +703,46 @@ mod tests {
|
||||
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!(U2432, u2432);
|
||||
generate_conversion_tests!(U2560, u2560);
|
||||
generate_conversion_tests!(U3072, u3072);
|
||||
generate_conversion_tests!(U3136, u3136);
|
||||
generate_conversion_tests!(U3200, u3200);
|
||||
generate_conversion_tests!(U3264, u3264);
|
||||
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!(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!(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);
|
||||
@@ -705,38 +775,46 @@ mod tests {
|
||||
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!(U2432, u2432);
|
||||
generate_codec_tests!(U2560, u2560);
|
||||
generate_codec_tests!(U3072, u3072);
|
||||
generate_codec_tests!(U3136, u3136);
|
||||
generate_codec_tests!(U3200, u3200);
|
||||
generate_codec_tests!(U3264, u3264);
|
||||
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!(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!(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);
|
||||
@@ -772,38 +850,46 @@ mod tests {
|
||||
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!(U2432, u2432);
|
||||
generate_cmp_tests!(U2560, u2560);
|
||||
generate_cmp_tests!(U3072, u3072);
|
||||
generate_cmp_tests!(U3136, u3136);
|
||||
generate_cmp_tests!(U3200, u3200);
|
||||
generate_cmp_tests!(U3264, u3264);
|
||||
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!(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!(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);
|
||||
@@ -839,38 +925,46 @@ mod tests {
|
||||
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!(U2560, u2560);
|
||||
generate_sub_tests!(U3072, u3072);
|
||||
generate_sub_tests!(U3136, u3136);
|
||||
generate_sub_tests!(U3200, u3200);
|
||||
generate_sub_tests!(U3264, u3264);
|
||||
generate_sub_tests!(U4096, u4096);
|
||||
generate_sub_tests!(U4160, u4160);
|
||||
generate_sub_tests!(U4224, u4224);
|
||||
generate_sub_tests!(U4288, u4288);
|
||||
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);
|
||||
@@ -987,17 +1081,25 @@ mod tests {
|
||||
generate_add_tests!(U1600, u1600, U1664);
|
||||
generate_add_tests!(U2048, u2048, U2112);
|
||||
generate_add_tests!(U2112, u2112, U2176);
|
||||
generate_add_tests!(U2176, u2176, U2240);
|
||||
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::*;
|
||||
@@ -1049,6 +1151,7 @@ mod tests {
|
||||
|
||||
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);
|
||||
@@ -1063,6 +1166,7 @@ mod tests {
|
||||
generate_div_tests!(U1216, u1216);
|
||||
generate_div_tests!(U1280, u1280);
|
||||
generate_div_tests!(U1536, u1536);
|
||||
generate_div_tests!(U1600, u1600);
|
||||
generate_div_tests!(U2048, u2048);
|
||||
generate_div_tests!(ignore U2112, u2112);
|
||||
generate_div_tests!(ignore U3072, u3072);
|
||||
@@ -1073,6 +1177,7 @@ mod tests {
|
||||
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);
|
||||
|
||||
@@ -27,6 +27,7 @@ data Operation = Add
|
||||
| SignedSub
|
||||
| SignedMul
|
||||
| SignedDiv
|
||||
| SignedModInv
|
||||
| SigConvert Int
|
||||
| SquareRoot
|
||||
| EGCD
|
||||
@@ -120,6 +121,7 @@ needs = [ Need RSA (\ size -> [Req (size `div` 2) Sub,
|
||||
Req size (Convert (size + 64))
|
||||
])
|
||||
, Need ModDiv (\ size -> [Req size ModInv,
|
||||
Req size SignedModInv,
|
||||
Req size SignedMul,
|
||||
Req size SignedDiv,
|
||||
Req (size * 2) SignedDiv,
|
||||
@@ -174,11 +176,17 @@ needs = [ Need RSA (\ size -> [Req (size `div` 2) Sub,
|
||||
, Need EGCD (\ size -> [Req size SignedBase,
|
||||
Req size BaseOps,
|
||||
Req (size + 64) SignedBase,
|
||||
Req ((size + 64) * 2) SignedBase,
|
||||
Req size (SigConvert (size + 64)),
|
||||
Req (size + 64) SignedShift,
|
||||
Req (size + 64) SignedAdd,
|
||||
Req (size + 64) SignedSub,
|
||||
Req (size + 64) SignedCmp
|
||||
Req (size + 64) SignedCmp,
|
||||
Req (size + 64) SignedDiv,
|
||||
Req (size + 64) SignedMul,
|
||||
Req ((size + 64) * 2) SignedSub,
|
||||
Req (size + 64) (Convert (((size + 64) * 2) + 64)),
|
||||
Req (size + 64) (SigConvert (((size + 64) * 2) + 64))
|
||||
])
|
||||
, Need ModInv (\ size -> [Req size BaseOps,
|
||||
Req (size + 64) SignedBase,
|
||||
@@ -188,6 +196,10 @@ needs = [ Need RSA (\ size -> [Req (size `div` 2) Sub,
|
||||
Req (size + 64) SignedAdd,
|
||||
Req size Barretts
|
||||
])
|
||||
, Need SignedModInv (\ size -> [
|
||||
Req size EGCD,
|
||||
Req size SignedModInv
|
||||
])
|
||||
, Need SquareRoot (\ size -> [Req size BaseOps,
|
||||
Req size Shifts,
|
||||
Req size Add,
|
||||
|
||||
Reference in New Issue
Block a user