version 1.8, 2004/05/21 08:43:03 |
version 1.9, 2004/07/11 17:48:47 |
|
|
*/ |
*/ |
|
|
/* need line long enough for largest moduli plus headers */ |
/* need line long enough for largest moduli plus headers */ |
#define QLINESIZE (100+8192) |
#define QLINESIZE (100+8192) |
|
|
/* Type: decimal. |
/* Type: decimal. |
* Specifies the internal structure of the prime modulus. |
* Specifies the internal structure of the prime modulus. |
*/ |
*/ |
#define QTYPE_UNKNOWN (0) |
#define QTYPE_UNKNOWN (0) |
#define QTYPE_UNSTRUCTURED (1) |
#define QTYPE_UNSTRUCTURED (1) |
#define QTYPE_SAFE (2) |
#define QTYPE_SAFE (2) |
#define QTYPE_SCHNOOR (3) |
#define QTYPE_SCHNOOR (3) |
#define QTYPE_SOPHIE_GERMAIN (4) |
#define QTYPE_SOPHIE_GERMAIN (4) |
#define QTYPE_STRONG (5) |
#define QTYPE_STRONG (5) |
|
|
/* Tests: decimal (bit field). |
/* Tests: decimal (bit field). |
* Specifies the methods used in checking for primality. |
* Specifies the methods used in checking for primality. |
* Usually, more than one test is used. |
* Usually, more than one test is used. |
*/ |
*/ |
#define QTEST_UNTESTED (0x00) |
#define QTEST_UNTESTED (0x00) |
#define QTEST_COMPOSITE (0x01) |
#define QTEST_COMPOSITE (0x01) |
#define QTEST_SIEVE (0x02) |
#define QTEST_SIEVE (0x02) |
#define QTEST_MILLER_RABIN (0x04) |
#define QTEST_MILLER_RABIN (0x04) |
#define QTEST_JACOBI (0x08) |
#define QTEST_JACOBI (0x08) |
#define QTEST_ELLIPTIC (0x10) |
#define QTEST_ELLIPTIC (0x10) |
|
|
/* |
/* |
* Size: decimal. |
* Size: decimal. |
* Specifies the number of the most significant bit (0 to M). |
* Specifies the number of the most significant bit (0 to M). |
* WARNING: internally, usually 1 to N. |
* WARNING: internally, usually 1 to N. |
*/ |
*/ |
#define QSIZE_MINIMUM (511) |
#define QSIZE_MINIMUM (511) |
|
|
/* |
/* |
* Prime sieving defines |
* Prime sieving defines |
*/ |
*/ |
|
|
/* Constant: assuming 8 bit bytes and 32 bit words */ |
/* Constant: assuming 8 bit bytes and 32 bit words */ |
#define SHIFT_BIT (3) |
#define SHIFT_BIT (3) |
#define SHIFT_BYTE (2) |
#define SHIFT_BYTE (2) |
#define SHIFT_WORD (SHIFT_BIT+SHIFT_BYTE) |
#define SHIFT_WORD (SHIFT_BIT+SHIFT_BYTE) |
#define SHIFT_MEGABYTE (20) |
#define SHIFT_MEGABYTE (20) |
#define SHIFT_MEGAWORD (SHIFT_MEGABYTE-SHIFT_BYTE) |
#define SHIFT_MEGAWORD (SHIFT_MEGABYTE-SHIFT_BYTE) |
|
|
/* |
/* |
* Using virtual memory can cause thrashing. This should be the largest |
* Using virtual memory can cause thrashing. This should be the largest |
* number that is supported without a large amount of disk activity -- |
* number that is supported without a large amount of disk activity -- |
* that would increase the run time from hours to days or weeks! |
* that would increase the run time from hours to days or weeks! |
*/ |
*/ |
#define LARGE_MINIMUM (8UL) /* megabytes */ |
#define LARGE_MINIMUM (8UL) /* megabytes */ |
|
|
/* |
/* |
* Do not increase this number beyond the unsigned integer bit size. |
* Do not increase this number beyond the unsigned integer bit size. |
* Due to a multiple of 4, it must be LESS than 128 (yielding 2**30 bits). |
* Due to a multiple of 4, it must be LESS than 128 (yielding 2**30 bits). |
*/ |
*/ |
#define LARGE_MAXIMUM (127UL) /* megabytes */ |
#define LARGE_MAXIMUM (127UL) /* megabytes */ |
|
|
/* |
/* |
* Constant: when used with 32-bit integers, the largest sieve prime |
* Constant: when used with 32-bit integers, the largest sieve prime |
* has to be less than 2**32. |
* has to be less than 2**32. |
*/ |
*/ |
#define SMALL_MAXIMUM (0xffffffffUL) |
#define SMALL_MAXIMUM (0xffffffffUL) |
|
|
/* Constant: can sieve all primes less than 2**32, as 65537**2 > 2**32-1. */ |
/* Constant: can sieve all primes less than 2**32, as 65537**2 > 2**32-1. */ |
#define TINY_NUMBER (1UL<<16) |
#define TINY_NUMBER (1UL<<16) |
|
|
/* Ensure enough bit space for testing 2*q. */ |
/* Ensure enough bit space for testing 2*q. */ |
#define TEST_MAXIMUM (1UL<<16) |
#define TEST_MAXIMUM (1UL<<16) |