z3-z3-4.13.0.src.math.polynomial.polynomial_primes.h Maven / Gradle / Ivy
The newest version!
/*++
Copyright (c) 2012 Microsoft Corporation
Module Name:
polynomial_primes.h
Abstract:
Some prime numbers for modular computations.
Author:
Leonardo (leonardo) 2011-12-21
Notes:
--*/
#pragma once
namespace polynomial {
#define NUM_SMALL_PRIMES 11
const unsigned g_small_primes[NUM_SMALL_PRIMES] = {
13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53
};
#if 0
#define NUM_BIG_PRIMES 77
const unsigned g_big_primes[NUM_BIG_PRIMES] = {
16777259, 16777289, 16777291, 16777331, 16777333, 16777337, 16777381,
16777421, 16777441, 16777447, 16777469, 16777499, 16777507, 16777531,
16777571, 16777577, 16777597, 16777601, 16777619, 16777633, 16777639,
16777643, 16777669, 16777679, 16777681, 16777699, 16777711, 16777721,
16777723, 16777729, 16777751, 16777777, 16777781, 16777807, 16777811,
16777823, 16777829, 16777837, 16777853, 16777903, 16777907, 16777949,
16777967, 16777973, 16777987, 16777991, 16778009, 16778023, 16778071,
16778077, 16778089, 16778123, 16778129, 16778137, 16778147, 16778173,
16778227, 16778231, 16778291, 16778309, 16778357, 16778383, 16778401,
16778413, 16778429, 16778441, 16778449, 16778453, 16778497, 16778521,
16778537, 16778543, 16778549, 16778561, 16778603, 16778623, 16778627
};
#else
#define NUM_BIG_PRIMES 231
const unsigned g_big_primes[NUM_BIG_PRIMES] = {
39103, 39107, 39113, 39119, 39133, 39139, 39157, 39161, 39163, 39181, 39191,
39199, 39209, 39217, 39227, 39229, 39233, 39239, 39241, 39251, 39293, 39301,
39313, 39317, 39323, 39341, 39343, 39359, 39367, 39371, 39373, 39383, 39397,
39409, 39419, 39439, 39443, 39451, 39461, 39499, 39503, 39509, 39511, 39521,
39541, 39551, 39563, 39569, 39581, 39607, 39619, 39623, 39631, 39659, 39667,
39671, 39679, 39703, 39709, 39719, 39727, 39733, 39749, 39761, 39769, 39779,
39791, 39799, 39821, 39827, 39829, 39839, 39841, 39847, 39857, 39863, 39869,
39877, 39883, 39887, 39901, 39929, 39937, 39953, 39971, 39979, 39983, 39989,
40009, 40013, 40031, 40037, 40039, 40063, 40087, 40093, 40099, 40111, 40123,
40127, 40129, 40151, 40153, 40163, 40169, 40177, 40189, 40193, 40213, 40231,
40237, 40241, 40253, 40277, 40283, 40289, 40343, 40351, 40357, 40361, 40387,
40423, 40427, 40429, 40433, 40459, 40471, 40483, 40487, 40493, 40499, 40507,
40519, 40529, 40531, 40543, 40559, 40577, 40583, 40591, 40597, 40609, 40627,
40637, 40639, 40693, 40697, 40699, 40709, 40739, 40751, 40759, 40763, 40771,
40787, 40801, 40813, 40819, 40823, 40829, 40841, 40847, 40849, 40853, 40867,
40879, 40883, 40897, 40903, 40927, 40933, 40939, 40949, 40961, 40973, 40993,
41011, 41017, 41023, 41039, 41047, 41051, 41057, 41077, 41081, 41113, 41117,
41131, 41141, 41143, 41149, 41161, 41177, 41179, 41183, 41189, 41201, 41203,
41213, 41221, 41227, 41231, 41233, 41243, 41257, 41263, 41269, 41281, 41299,
41333, 41341, 41351, 41357, 41381, 41387, 41389, 41399, 41411, 41413, 41443,
41453, 41467, 41479, 41491, 41507, 41513, 41519, 41521, 41539, 41543, 41549
};
#endif
};