| 1 | # Tests for efficient reduction |
| 2 | |
| 3 | reduce { |
| 4 | 0xc000 0x16cb3 0xacb3; |
| 5 | 0x8000 0x345545 0x5545; |
| 6 | 0x8001 0x345545 0x54dd; |
| 7 | |
| 8 | 0xfffef 0x100000 0x11; |
| 9 | |
| 10 | 0x1ffffffe 0x26fc6567 0x6fc6569; |
| 11 | 0x3ffffffe 0x45445dc0 0x5445dc2; |
| 12 | 0x7ffffffe 0xd4827a70 0x54827a72; |
| 13 | |
| 14 | 0x72e2c37447f8bca34c4a39b130ea8e5c9a7d8b54564aa88ea773 |
| 15 | 0x367aa8f5ba9ac4e8e2ea198b8af2c3b3081deab392ffc05715783b245a62a6fa |
| 16 | 0x08e8c03ebf398c63d71d8fd7ca4ece12367a8dde180ca650afb6; |
| 17 | |
| 18 | 0x52e2c37447f8bca34c4a39b130ea8e5c9a7d8b54564aa88ea773 |
| 19 | 0x367aa8f5ba9ac4e8e2ea198b8af2c3b3081deab392ffc05715783b245a62a6fa |
| 20 | 0x4b6bd8300540dbbd767fe9e64ad2cbde52a9ae2299e3c516152d; |
| 21 | |
| 22 | 0xfffffffdffffffffffffffffffffffff |
| 23 | 0x7fb838a8a0a95046b9d9d9fb4440f7bbc1a7bd3b |
| 24 | 0xa019c198b9d9d9fb4440f7bc415ff5e4; |
| 25 | |
| 26 | # --- Randomized tests --- |
| 27 | |
| 28 | 0x132d3556f3cebc638 0x6f74ce80d07608e319f56dc2 0x79e98fbb30a214c2; |
| 29 | 0x1aef05e0555769653 0xf636185c2ada6b1acf4f2d31 0x117b9a81c55ee4e03; |
| 30 | 0x1f7c4c81b88f81913 0x760f610062afd72799e6b0b3 0x1ec258eae535659c3; |
| 31 | 0x117f2f897d661e4b7 0x95df548330a70329eeab383f 0x86f2ab45d0cc87ed; |
| 32 | 0xa2c4cf44a5972188 0xd948ef220b6601616cdbed8 0x26715b2f439cede0; |
| 33 | 0x525db818176327d8 0x1236bb2e97fcbf3e416da5fa 0x316b2042536df86a; |
| 34 | 0x820c635b08734b4f 0xd7974bbb4c1ea1b391f04734 0xeb86c2a8ce1253d; |
| 35 | 0xc462e566492f4466 0xa8bb5f5be3c5b6759aabaca6 0xb5017eda4f31cd6c; |
| 36 | 0x178f0c649ed118fcf 0xd87870a99fec475bd35af088 0xd58a822a7a28519e; |
| 37 | 0x18281a83819b93de8 0x4076eebb0ad137ab0a72f3f4 0x462edd6a65b5113c; |
| 38 | 0x6e16593cfefad08d 0xd8634d8282d21301b25048cb 0x433a7e8a06ca35a8; |
| 39 | 0x13060a7e887802d17 0x7e5183e6e46caee43188a083 0x8e7725518c6987cb; |
| 40 | 0x136907b6278b8fa2e 0x84ca3577e9d162673f60b558 0x6ea653977d862efc; |
| 41 | 0xefbf051e851f8fce 0xc8e0033560fc1dec8165f005 0xc490ffd815e756b; |
| 42 | 0x17b27059bef04448c 0x62a68b0714913f155276d5c 0x56daeaed9b4b9964; |
| 43 | 0x1db4fd46803ba288b 0xcc2ff1d6d2cd60df11af89ef 0xa9703ff1bb30d6c9; |
| 44 | 0x96688a890782d63e 0x8f1580cd4aac6107a99c452e 0x9072ea3454f23ada; |
| 45 | 0x129db7a6e49f67402 0x58ca71abf9678ad6b89f1bb1 0xd24d2e9f92b3250b; |
| 46 | 0x5787335923bfe26a 0xab77a4c529f22b27f3404ec1 0x12376ede68e7f62b; |
| 47 | 0xcdd0867e7d2a6f82 0x94d04cc4c41f8d9e81ad1a57 0x4e5adfa0b513316b; |
| 48 | 0x1e7fa86c7cfc33476 0xd5f3486892e62aafdaab49d9 0x1d880abd6fc232e57; |
| 49 | 0x3b243bca16e19c1b 0x73ea15041d8afb15007a86ec 0xc35d820e3487bab; |
| 50 | 0xe83026630878a6fc 0x5cc7c330ad099096f8c0d334 0x7175110d57947884; |
| 51 | 0x1e177dfad81ae3659 0x5e63885a60d2433639ea15d4 0x4171b9b6b9f283c7; |
| 52 | 0x56092c4d7e0317cb 0xf0ce97e0aa68222719ca0db3 0x513e403d7c15394a; |
| 53 | 0x13bf2823dc264e579 0xecde50b32c372ae010724403 0x10d3560d183e4bbef; |
| 54 | 0x1e3e73ae27f730415 0x85be132dff09275cd0678dc1 0x1cced546cc046d3b4; |
| 55 | 0x7b95e31b24cd5e2d 0x9f2b52c68b843a15d22e89e5 0x2caf4e3e91c31db7; |
| 56 | 0x19e8f897bb33980d3 0x8e768c0e8fd8d9d33dccde9b 0x1773726f1d2d5c450; |
| 57 | 0x45c3da8c33904f84 0x938d033a4a0fa631a0b80362 0x286f070c91c83346; |
| 58 | 0x14c31265bf7031a6f 0x5a66a6a2977db772a0685b85 0x2958d7228b7a99e7; |
| 59 | 0x3a64564a630c37d 0xc9bab7f3aae1c004695e221f 0x389af226da3abf4; |
| 60 | 0xae62705e0d9bd186 0x6acc10e7c5c37a49aab90cdb 0x3f088952eb7381dd; |
| 61 | 0x2f6d2f19b3dd3afa 0x736a48a3aeb822e36afccddc 0x1177d99e0ace6132; |
| 62 | 0x28ba8f6a810a9bc3 0xc132dcb0c54968203521a211 0x2b34b419f9cf4fc; |
| 63 | 0xa27179c1d29f17e 0x204334f072f78070b3d8be97 0x13f27df8f86f04b; |
| 64 | 0x1360ebec0aebb4fc1 0x34e4eb389dc01062ea004096 0x4e37e90448e2fb44; |
| 65 | 0x10e6b04cf5aa8714a 0x952dfc6839dab9b3fe68b90b 0xa486328db342918d; |
| 66 | 0xb78618030fd99201 0x1e4277d9f177472e74403dde 0x616d77be8e5bb8e0; |
| 67 | 0x19332141599bbb34e 0x8fa7e6464ce3630e648be948 0xb208f457fb27f9ce; |
| 68 | 0xb923e7a97b13df9c 0x4b7b8a030a5b2d89838de97a 0x3c31e3e6dda9401a; |
| 69 | 0x19d4de5edb3c5ec0d 0x77483326eb9880ed5c5e172a 0x18e1bc3c0c84a731f; |
| 70 | 0x1fbd82e6d19830423 0x19a19d5c7300e8f15276b442 0x19e3cd78bbc76f377; |
| 71 | 0x1edfa1d3b8028b51f 0xd8317ae6fab758b15b11bd70 0xfd1c644434022847; |
| 72 | 0xdaec65ce93172475 0x145a8d7c0608220069826daf 0xb10e61da29e26c76; |
| 73 | 0x352c1277348eb7b7 0xb1298fb1e56c3bddf99eb1e0 0x3c77b12d90eb7aa; |
| 74 | 0x1c85f71596327943a 0x87d614ebeb9c139480424108 0x9d2c2c54ab8b2930; |
| 75 | 0x18a1750630238063d 0xdce54d7fadff08133949f19f 0x123b2144f9a974900; |
| 76 | 0x1a7744ebf9a65a52c 0xff7e0dc61bb5ae146f77b5f3 0x117b737e489aa384b; |
| 77 | 0xfcab2134564cb7e1 0x2abafd1970dc3cd3fe19737a 0x3f9422811f59a679; |
| 78 | 0x12c5ee15654f99650 0x51cd337f586f4132cc5f9fce 0x367fa304ef4f7b9e; |
| 79 | 0x1b4d1965ea5b244b5 0x45147e77509b75c124c7ea58 0x115f6b685370d151; |
| 80 | 0x166733803c3741483 0xa17bd9f2dc4718d1f9d2e586 0x1072731aaceb80daf; |
| 81 | 0x1c14b7860ca6244e7 0x7a049d30b5fcf52e1b7318d1 0x17ba348a12493a708; |
| 82 | 0x1638163820e50cc53 0xeb2017adba2059e82ef4cc87 0x69fae65828d3b1cc; |
| 83 | 0x6d62aca84891a8e9 0x14154f8a5561d2fae8733ee9 0x39398b9f5b07ccbc; |
| 84 | 0x14074861b17018bdb 0x69e3fe986c97283ad909e425 0x65abffa82054c001; |
| 85 | 0x113d89601bf6c127c 0x61ac90d7b40365442ce062c2 0xbf3afe26075dd2ce; |
| 86 | 0xe29601d85c5f8f5c 0x30c45fc40bcc3c07b23a84b7 0x37fad84164b71f2b; |
| 87 | 0xf5e804bca7760fa2 0x87be50da617af63c0ff84a5b 0x9bc1d962b7f8d3df; |
| 88 | 0x1026cc79d705b0390 0xc1fa276909517117ea61f198 0xc8adc301152c14b8; |
| 89 | 0xba457c44f8f6251e 0xafbdeb0a92ff3c8ebebea2e4 0x707337a5038cf7ec; |
| 90 | 0x10390e61e25bfcf6e 0x61f936ea3cc4c9e2c0fdc882 0x139d30bf63108000; |
| 91 | 0x6c31214be5742477 0xa921abaf903591a0f740a56a 0xfe7c248c78176a4; |
| 92 | } |
| 93 | |
| 94 | modexp { |
| 95 | 0xfffffffdffffffffffffffffffffffff 0xfffffffdfffffffffffffffffffffffe 0 1; |
| 96 | 0xfffffffdffffffffffffffffffffffff 2 |
| 97 | 0xfffffffdfffffffffffffffffffffffe 1; |
| 98 | 0xfffffffdffffffffffffffffffffffff 2 |
| 99 | 0xfffffffdfffffffffffffffffffffffd |
| 100 | 0x7fffffff000000000000000000000000; |
| 101 | 8939489893434234331 1804289383 |
| 102 | -8939035539979879765 6139425926295484741; |
| 103 | } |