/****************************************************************************** * * * PRIME LOOK-UP TABLE * * 01/30/99 (dkc) * * * * This table consists of primes of the form p**2*k+1 for p=3. The least * * residue table is modulus p**2. * * * ******************************************************************************/ unsigned int error[10]; unsigned int count; unsigned int d; unsigned int e; unsigned int output[2001*4]; unsigned short residue[2]={1,8}; unsigned int recip[10*2]={ 0x55555556, 0x00000003, 0x33333334, 0x00000005, 0x24924925, 0x00000007, 0x1745d175, 0x0000000b, 0x13b13b14, 0x0000000d, 0x0f0f0f10, 0x00000011, 0x0d79435f, 0x00000013, 0x0b21642d, 0x00000017, 0x08d3dcb1, 0x0000001d, 0x08421085, 0x0000001f}; unsigned int recip1[3]={ 0x55555556, // 1/3 0x1c71c71d, // 1/9 0x2aaaaaab}; // 1/6 unsigned int table3[848]={ 0x13, 0x25, 0x49, 0x6d, 0x7f, 0xa3, 0xb5, 0xc7, 0x10f, 0x133, 0x17b, 0x18d, 0x1b1, 0x1e7, 0x20b, 0x21d, 0x241, 0x265, 0x277, 0x2e3, 0x2f5, 0x32b, 0x33d, 0x373, 0x397, 0x3a9, 0x3df, 0x3f1, 0x427, 0x45d, 0x481, 0x493, 0x4ff, 0x511, 0x58f, 0x5b3, 0x5fb, 0x60d, 0x61f, 0x655, 0x679, 0x69d, 0x6d3, 0x6f7, 0x709, 0x751, 0x7cf, 0x7e1, 0x805, 0x829, 0x85f, 0x871, 0x883, 0x8cb, 0x8dd, 0x8ef, 0x925, 0x949, 0x9a3, 0x9c7, 0x9d9, 0x9eb, 0x9fd, 0xa21, 0xa57, 0xa7b, 0xa9f, 0xae7, 0xb65, 0xb89, 0xb9b, 0xbf5, 0xc07, 0xc61, 0xc73, 0xcbb, 0xcf1, 0xd03, 0xd81, 0xdb7, 0xdc9, 0xddb, 0xdff, 0xe35, 0xe59, 0xe6b, 0xe7d, 0xe8f, 0xf0d, 0xf31, 0xf43, 0xf67, 0xfd3, 0x103f, 0x1051, 0x1087, 0x10f3, 0x1105, 0x115f, 0x1183, 0x11a7, 0x11ef, 0x1237, 0x12b5, 0x12fd, 0x1345, 0x1357, 0x1369, 0x137b, 0x139f, 0x13c3, 0x13d5, 0x13f9, 0x142f, 0x14e3, 0x152b, 0x153d, 0x1597, 0x15bb, 0x15cd, 0x1615, 0x1639, 0x166f, 0x1693, 0x16db, 0x16ed, 0x1723, 0x17b3, 0x17e9, 0x1843, 0x1855, 0x1867, 0x189d, 0x18c1, 0x18e5, 0x191b, 0x1951, 0x1999, 0x19ab, 0x19cf, 0x1a05, 0x1a17, 0x1a4d, 0x1aa7, 0x1ab9, 0x1b25, 0x1b37, 0x1b7f, 0x1b91, 0x1bd9, 0x1c33, 0x1c45, 0x1c8d, 0x1cf9, 0x1d41, 0x1d53, 0x1d89, 0x1df5, 0x1e07, 0x1e2b, 0x1e3d, 0x1e4f, 0x1ebb, 0x1f39, 0x1f4b, 0x1fa5, 0x1fff, 0x2011, 0x2047, 0x207d, 0x20a1, 0x20c5, 0x20fb, 0x210d, 0x21af, 0x21c1, 0x21e5, 0x2209, 0x221b, 0x2263, 0x2275, 0x2287, 0x22bd, 0x22e1, 0x2329, 0x2383, 0x2395, 0x23a7, 0x23dd, 0x23ef, 0x247f, 0x24b5, 0x24d9, 0x258d, 0x259f, 0x25b1, 0x25f9, 0x260b, 0x2653, 0x2665, 0x269b, 0x26ad, 0x26f5, 0x2719, 0x2773, 0x2803, 0x285d, 0x2881, 0x28db, 0x28ed, 0x2911, 0x2923, 0x2947, 0x298f, 0x29a1, 0x29d7, 0x29e9, 0x2a55, 0x2a8b, 0x2a9d, 0x2b3f, 0x2b99, 0x2bbd, 0x2bf3, 0x2c17, 0x2ccb, 0x2cef, 0x2d49, 0x2db5, 0x2dc7, 0x2e33, 0x2e57, 0x2eb1, 0x2ec3, 0x2ee7, 0x2f0b, 0x2f41, 0x2fd1, 0x2ff5, 0x3085, 0x30a9, 0x30df, 0x3103, 0x3127, 0x3139, 0x314b, 0x315d, 0x31db, 0x31ed, 0x31ff, 0x3235, 0x3259, 0x326b, 0x32b3, 0x32e9, 0x3367, 0x3379, 0x33c1, 0x33d3, 0x341b, 0x3463, 0x34e1, 0x3517, 0x353b, 0x3571, 0x35dd, 0x35ef, 0x3637, 0x366d, 0x3745, 0x378d, 0x37d5, 0x380b, 0x3841, 0x3853, 0x3865, 0x38e3, 0x393d, 0x39bb, 0x39cd, 0x3a03, 0x3a15, 0x3a27, 0x3a4b, 0x3aa5, 0x3ab7, 0x3b11, 0x3b23, 0x3b59, 0x3bd7, 0x3c0d, 0x3c1f, 0x3c43, 0x3cf7, 0x3d1b, 0x3d2d, 0x3d3f, 0x3d75, 0x3dab, 0x3dcf, 0x3df3, 0x3e05, 0x3e29, 0x3eb9, 0x3eef, 0x3f37, 0x3f91, 0x3feb, 0x3ffd, 0x4021, 0x4045, 0x40b1, 0x40f9, 0x410b, 0x4165, 0x4177, 0x41bf, 0x4207, 0x4219, 0x4261, 0x4273, 0x4285, 0x4297, 0x42f1, 0x4327, 0x4339, 0x4393, 0x43a5, 0x43ed, 0x4423, 0x4459, 0x448f, 0x44a1, 0x44d7, 0x44fb, 0x4531, 0x4555, 0x45af, 0x45f7, 0x4609, 0x46cf, 0x4705, 0x4717, 0x4729, 0x474d, 0x4771, 0x4783, 0x47cb, 0x47dd, 0x4801, 0x4813, 0x485b, 0x486d, 0x4945, 0x4969, 0x49e7, 0x4a1d, 0x4a41, 0x4a89, 0x4b07, 0x4b85, 0x4bbb, 0x4bdf, 0x4bf1, 0x4c15, 0x4c4b, 0x4c93, 0x4d59, 0x4d6b, 0x4db3, 0x4dd7, 0x4dfb, 0x4e67, 0x4e79, 0x4e8b, 0x4eaf, 0x4ec1, 0x4f09, 0x4f2d, 0x4f3f, 0x4f63, 0x4f75, 0x4f87, 0x4fcf, 0x5029, 0x5071, 0x5083, 0x50ef, 0x5125, 0x5149, 0x51a3, 0x5245, 0x52b1, 0x52c3, 0x531d, 0x5341, 0x53f5, 0x5419, 0x5461, 0x54a9, 0x54df, 0x5527, 0x5539, 0x556f, 0x55b7, 0x55c9, 0x55ed, 0x5623, 0x566b, 0x568f, 0x571f, 0x57af, 0x57d3, 0x57e5, 0x582d, 0x58ab, 0x58bd, 0x5917, 0x594d, 0x5a01, 0x5a13, 0x5a5b, 0x5a7f, 0x5aa3, 0x5afd, 0x5b0f, 0x5bb1, 0x5bd5, 0x5c0b, 0x5c1d, 0x5c2f, 0x5c77, 0x5c89, 0x5cbf, 0x5cd1, 0x5d19, 0x5d3d, 0x5d4f, 0x5da9, 0x5df1, 0x5e27, 0x5e39, 0x5ea5, 0x5eb7, 0x5f11, 0x5f35, 0x5f47, 0x5fa1, 0x5fb3, 0x5fc5, 0x5ffb, 0x6079, 0x609d, 0x6109, 0x611b, 0x612d, 0x6187, 0x61e1, 0x6217, 0x623b, 0x625f, 0x6283, 0x6295, 0x62dd, 0x636d, 0x637f, 0x63d9, 0x63eb, 0x6421, 0x648d, 0x649f, 0x64f9, 0x650b, 0x652f, 0x6553, 0x65ad, 0x65e3, 0x6607, 0x6661, 0x6673, 0x6697, 0x66cd, 0x6703, 0x6727, 0x676f, 0x6781, 0x6811, 0x6859, 0x686b, 0x68c5, 0x68d7, 0x690d, 0x6943, 0x69c1, 0x69d3, 0x69e5, 0x69f7, 0x6a75, 0x6a87, 0x6ae1, 0x6b05, 0x6b5f, 0x6b95, 0x6bef, 0x6c5b, 0x6c91, 0x6cc7, 0x6ceb, 0x6cfd, 0x6d0f, 0x6d7b, 0x6db1, 0x6dc3, 0x6e77, 0x6e89, 0x6ebf, 0x6ee3, 0x6f3d, 0x6f61, 0x6f85, 0x6fbb, 0x6fcd, 0x6ff1, 0x7027, 0x7039, 0x70a5, 0x70ed, 0x70ff, 0x7159, 0x71fb, 0x7243, 0x7255, 0x7267, 0x73ab, 0x73bd, 0x73f3, 0x74a7, 0x74b9, 0x74dd, 0x7525, 0x7591, 0x75b5, 0x75d9, 0x75eb, 0x760f, 0x7621, 0x7633, 0x7669, 0x769f, 0x76c3, 0x771d, 0x7741, 0x77ad, 0x7807, 0x782b, 0x783d, 0x7861, 0x7885, 0x7897, 0x7939, 0x794b, 0x795d, 0x7993, 0x79b7, 0x79c9, 0x79ff, 0x7a11, 0x7a23, 0x7a59, 0x7a7d, 0x7aa1, 0x7b55, 0x7b8b, 0x7baf, 0x7bd3, 0x7c1b, 0x7d3b, 0x7d4d, 0x7dcb, 0x7e01, 0x7e91, 0x7eeb, 0x7f33, 0x7f8d, 0x7fc3, 0x800b, 0x801d, 0x8041, 0x8065, 0x8077, 0x80ad, 0x80f5, 0x8119, 0x81bb, 0x81df, 0x8215, 0x826f, 0x8281, 0x8293, 0x8335, 0x838f, 0x83d7, 0x83e9, 0x848b, 0x84af, 0x84f7, 0x8509, 0x8551, 0x8563, 0x8587, 0x85e1, 0x8617, 0x864d, 0x86a7, 0x86ef, 0x875b, 0x877f, 0x87c7, 0x8821, 0x887b, 0x890b, 0x899b, 0x89d1, 0x89f5, 0x8a19, 0x8a4f, 0x8a85, 0x8acd, 0x8af1, 0x8b5d, 0x8b93, 0x8bdb, 0x8bff, 0x8c47, 0x8c8f, 0x8cc5, 0x8ce9, 0x8d0d, 0x8d79, 0x8dd3, 0x8df7, 0x8e51, 0x8e63, 0x8e75, 0x8eab, 0x8ebd, 0x8ecf, 0x8f71, 0x8f83, 0x8fb9, 0x8fef, 0x9025, 0x9037, 0x906d, 0x90fd, 0x9133, 0x9145, 0x917b, 0x91f9, 0x922f, 0x9241, 0x92ad, 0x92bf, 0x9319, 0x933d, 0x9373, 0x9397, 0x944b, 0x94a5, 0x9535, 0x958f, 0x95e9, 0x961f, 0x9631, 0x969d, 0x96c1, 0x96d3, 0x96e5, 0x9751, 0x9787, 0x9805, 0x9829, 0x983b, 0x9883, 0x98a7, 0x98b9, 0x98dd, 0x9949, 0x9991, 0x99c7, 0x9a0f, 0x9a57, 0x9ac3, 0x9b1d, 0x9b2f, 0x9b77, 0x9c2b, 0x9c97, 0x9cbb, 0x9cf1, 0x9d15, 0x9d27, 0x9da5, 0x9ded, 0x9e23, 0x9e47, 0x9e8f, 0x9ea1, 0x9eb3, 0x9efb, 0x9f43, 0x9faf, 0x9fc1, 0x9fe5, 0xa03f, 0xa075, 0xa099, 0xa0ab, 0xa0bd, 0xa0f3, 0xa105, 0xa129, 0xa213, 0xa291, 0xa321, 0xa37b, 0xa39f, 0xa3d5, 0xa3e7, 0xa41d, 0xa49b, 0xa4ad, 0xa4d1, 0xa52b, 0xa561, 0xa585, 0xa597, 0xa5a9, 0xa5df, 0xa603, 0xa64b, 0xa65d, 0xa693, 0xa6c9, 0xa6ff, 0xa723, 0xa759, 0xa76b, 0xa7d7, 0xa7fb, 0xa855, 0xa8c1, 0xa8e5, 0xa91b, 0xa987, 0xaa17, 0xaa3b, 0xaa4d, 0xaa71, 0xaa83, 0xaa95, 0xaaef, 0xab01, 0xab5b, 0xabfd, 0xac45, 0xac57, 0xace7, 0xacf9, 0xad53, 0xad65, 0xadd1, 0xadf5, 0xae2b, 0xae4f, 0xae61, 0xaf27, 0xaf5d, 0xafb7, 0xb047, 0xb07d, 0xb0e9, 0xb0fb, 0xb11f, 0xb131, 0xb179, 0xb1d3, 0xb1e5, 0xb22d, 0xb23f, 0xb263, 0xb2bd, 0xb3cb, 0xb413, 0xb449, 0xb45b, 0xb4b5, 0xb4c7, 0xb50f, 0xb569, 0xb58d, 0xb5d5, 0xb5e7, 0xb62f, 0xb69b, 0xb6e3, 0xb7a9, 0xb827, 0xb839, 0xb893, 0xb8a5, 0xb8b7, 0xb947, 0xb9a1, 0xba0d, 0xba55, 0xba79, 0xbaaf, 0xbac1, 0xbb09, 0xbb2d, 0xbbcf, 0xbc3b, 0xbc83, 0xbcb9, 0xbdeb, 0xbe21, 0xbe8d, 0xbe9f, 0xbeb1, 0xbee7, 0xbef9, 0xbf0b, 0xbf89, 0xbfad, 0xbfe3, 0xc019, 0xc0bb, 0xc0f1, 0xc103, 0xc115, 0xc181, 0xc1db, 0xc1ff, 0xc211, 0xc27d, 0xc28f, 0xc2b3};