mparam.h revision 1.1.1.5
1/* Various Thresholds of MPFR, not exported.  -*- mode: C -*-
2
3Copyright 2005-2023 Free Software Foundation, Inc.
4
5This file is part of the GNU MPFR Library.
6
7The GNU MPFR Library is free software; you can redistribute it and/or modify
8it under the terms of the GNU Lesser General Public License as published by
9the Free Software Foundation; either version 3 of the License, or (at your
10option) any later version.
11
12The GNU MPFR Library is distributed in the hope that it will be useful, but
13WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
15License for more details.
16
17You should have received a copy of the GNU Lesser General Public License
18along with the GNU MPFR Library; see the file COPYING.LESSER.  If not, see
19https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
2051 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
21
22/* Generated by MPFR's tuneup.c, 2018-02-22, gcc 6.3.0 */
23/* gcc14.fsffrance.org (Intel(R) Xeon(R) CPU X5450  @ 3.00GHz)
24   with GMP 6.1.2 configured with ABI=32,
25   MPFR configured with CFLAGS='-O2 -m32 -march=i686 -mtune=generic' */
26
27#define MPFR_MULHIGH_TAB  \
28 -1,0,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0, \
29 0,0,0,0,0,0,0,15,0,0,0,16,0,17,18,19, \
30 21,18,19,20,21,21,22,23,24,26,23,28,25,30,30,28, \
31 29,30,34,32,32,34,34,36,36,38,38,38,40,42,42,42, \
32 40,46,42,46,44,44,46,52,48,49,50,50,52,52,54,60, \
33 56,56,58,59,60,60,60,63,64,64,64,64,68,68,68,68, \
34 68,68,64,68,64,68,68,68,68,68,68,68,68,68,76,76, \
35 76,76,68,80,84,68,68,84,84,84,84,84,84,84,84,77, \
36 84,76,80,84,84,76,84,92,84,76,84,84,84,84,92,92, \
37 93,93,84,110,111,99,93,99,111,99,110,111,106,105,108,104, \
38 110,111,111,110,111,111,111,110,110,123,116,110,123,123,120,117, \
39 116,117,116,123,123,123,120,126,123,123,123,129,126,123,129,129, \
40 126,135,132,135,135,135,135,135,134,135,141,141,154,135,156,141, \
41 134,148,156,156,156,147,148,164,164,155,156,156,164,163,164,163, \
42 163,164,164,164,164,164,164,163,171,163,164,172,172,171,172,163, \
43 164,171,180,177,180,179,180,184,172,179,180,180,176,179,180,171, \
44 180,180,188,188,180,187,200,204,180,204,204,187,196,203,204,203, \
45 204,203,204,203,204,203,220,204,220,204,220,220,219,203,204,220, \
46 220,219,220,219,204,219,220,203,220,204,204,219,220,252,236,251, \
47 250,251,252,249,252,249,252,251,252,252,252,251,252,251,252,249, \
48 252,252,252,251,252,252,252,251,252,267,251,252,252,251,268,252, \
49 252,249,250,252,252,252,268,252,252,268,252,268,268,268,268,252, \
50 252,265,251,268,268,268,266,265,267,268,268,268,268,268,268,268, \
51 268,267,268,268,268,268,268,267,268,306,306,306,306,268,306,306, \
52 306,305,305,306,306,268,306,306,305,305,306,306,306,330,306,306, \
53 306,306,306,306,306,306,330,306,306,306,306,330,330,330,330,306, \
54 329,330,330,330,328,329,330,330,354,329,330,329,330,330,354,330, \
55 330,354,329,330,330,354,330,352,354,329,354,330,354,330,330,354, \
56 354,329,354,330,360,330,330,354,352,354,378,371,378,377,354,378, \
57 378,402,354,402,378,378,378,401,402,378,402,378,354,401,377,378, \
58 377,378,402,401,378,378,378,402,401,402,402,402,401,401,402,402, \
59 401,402,401,402,402,402,402,402,402,402,402,402,402,402,401,402, \
60 402,401,402,402,401,402,402,401,402,402,402,402,402,402,402,402, \
61 402,401,402,402,402,401,402,439,439,440,402,440,402,402,426,439, \
62 439,440,440,440,426,426,426,438,439,440,472,439,471,440,440,472, \
63 472,440,440,440,471,439,472,440,472,472,472,440,470,472,471,472, \
64 470,472,504,470,472,472,469,472,496,472,472,472,471,502,472,472, \
65 471,472,471,504,472,472,472,472,480,504,472,496,503,503,504,504, \
66 503,503,472,504,504,472,496,503,502,472,504,496,472,504,503,472, \
67 504,496,504,504,503,536,470,536,472,536,535,535,536,534,504,536, \
68 536,503,504,536,536,544,536,503,504,536,535,503,480,504,504,536, \
69 535,568,568,504,568,568,568,544,568,536,535,568,568,535,504,535, \
70 568,568,568,536,504,567,544,568,568,536,544,567,544,544,568,584, \
71 544,568,560,568,600,559,568,584,583,568,568,600,599,567,568,567, \
72 568,567,568,567,600,568,568,599,599,568,584,568,567,568,599,568, \
73 567,568,567,600,600,568,600,584,568,599,599,568,600,568,600,599, \
74 608,599,600,568,600,600,568,600,600,568,568,598,599,600,599,600, \
75 600,600,600,664,664,600,632,584,600,664,663,600,664,600,632,663, \
76 663,631,632,600,600,600,600,664,600,656,599,664,600,600,656,600, \
77 600,664,664,664,664,663,663,663,664,664,664,664,663,664,662,663, \
78 664,663,664,664,664,632,632,663,664,663,664,632,664,664,664,664, \
79 664,664,663,664,664,664,662,664,663,664,664,664,664,663,663,664, \
80 664,664,662,663,663,664,664,664,664,664,662,663,664,664,664,664, \
81 664,664,664,664,663,664,664,664,664,664,663,664,663,664,664,664, \
82 663,664,664,687,688,662,663,664,664,663,664,734,664,664,688,736, \
83 736,664,664,664,664,663,664,663,664,736,735,664,664,663,736,733, \
84 736,734,735,736,736,735,736,735,736,736,736,784,736,784,784,736, \
85 736,784,735,736,736,783,736,783,736,736,736,735,784,784,736,736, \
86 735,784,736,784,736,784,784,736,784,784,784,784,784,783,784,783, \
87 783,783,784,784,784,784,784,784,784,783,824,784,782,831,832,783, \
88 824,831,832,832,832,784,784,831,784,784,784,784,784,824,831,824, \
89 823,824,824,824,824,824,831,832,824,822,824,832,824,824,832,823, \
90 832,832,831,831,832,832,832,832,832,856,822,832,832,832,824,856, \
91 824,824,832,832,824,832,856,831,832,832,856,831,832,856,832,830 \
92
93#define MPFR_SQRHIGH_TAB  \
94 -1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,8,9,10, \
95 11,12,13,11,13,12,13,14,15,14,15,16,16,18,17,19, \
96 19,18,19,19,20,20,22,23,23,22,23,24,25,25,26,27, \
97 28,30,30,27,28,29,30,31,32,33,38,40,40,42,42,44, \
98 40,40,42,42,44,44,42,42,44,42,50,50,42,46,50,44, \
99 46,44,46,46,50,48,50,50,50,50,48,54,50,54,50,50, \
100 54,50,54,54,54,62,60,53,54,54,56,56,58,56,60,58, \
101 58,60,60,62,62,60,76,62,76,68,72,66,68,72,76,72, \
102 72,72,76,76,76,80,80,80,76,80,80,88,84,80,84,88, \
103 84,92,88,88,92,92,88,88,80,92,96,92,92,87,96,96, \
104 100,100,100,100,96,100,96,104,96,104,100,100,100,100,108,100, \
105 96,100,104,103,104,104,100,100,104,104,104,104,104,108,108,99, \
106 100,108,108,100,112,100,106,123,108,108,128,123,112,129,112,108, \
107 129,135,134,135,128,129,138,135,123,141,135,127,128,141,129,147, \
108 128,141,134,135,135,141,138,139,135,141,138,141,135,153,146,147, \
109 147,153,141,141,147,153,141,150,135,147,147,159,147,147,147,159, \
110 135,141,135,146,147,165,146,147,159,152,147,147,147,147,146,158, \
111 151,147,153,146,147,157,153,153,188,159,159,188,188,164,164,195, \
112 196,160,180,187,188,180,187,188,180,188,188,165,187,188,196,188, \
113 188,180,188,196,188,188,195,188,187,188,188,196,196,188,195,196, \
114 196,195,196,195,196,196,195,196,196,188,211,203,212,195,196,196, \
115 196,196,212,211,211,195,196,220,220,212,220,225,212,196,216,220, \
116 216,220,220,195,196,196,220,220,196,220,228,203,212,212,212,212, \
117 211,212,212,212,212,212,212,220,212,219,220,220,220,220,212,228, \
118 227,220,228,228,228,228,228,212,212,228,227,211,228,236,276,219, \
119 220,228,212,219,220,244,219,219,244,244,220,227,228,228,244,227, \
120 282,244,294,270,264,282,269,276,264,270,294,276,282,270,270,276, \
121 276,276,282,270,270,276,281,276,282,282,282,282,276,282,294,282, \
122 282,294,270,294,282,294,282,294,294,294,294,294,276,282,282,282, \
123 276,294,282,282,294,282,282,294,306,294,294,294,312,294,294,294, \
124 294,294,294,294,317,318,318,294,293,318,294,306,306,318,330,324, \
125 324,330,318,306,330,312,318,318,324,324,318,324,324,330,317,330, \
126 324,323,324,318,318,330,330,329,329,330,330,318,324,329,329,330, \
127 336,330,329,330,324,342,354,342,318,324,354,342,341,348,348,318, \
128 330,354,354,342,318,368,354,376,368,354,375,330,376,392,392,376, \
129 330,376,376,376,368,392,392,392,384,392,392,392,392,392,392,392, \
130 392,392,392,408,392,392,407,392,392,392,392,406,408,408,407,407, \
131 408,392,408,416,408,392,424,408,375,376,376,408,408,424,376,423, \
132 416,424,392,408,424,408,376,431,432,424,424,423,424,424,424,407, \
133 432,424,392,431,432,392,432,424,407,440,392,440,440,440,408,432, \
134 439,440,424,440,416,440,424,407,423,424,424,424,424,456,424,424, \
135 432,423,424,432,416,424,432,423,424,423,440,424,424,424,424,439, \
136 440,472,424,424,424,424,440,439,440,456,440,456,438,408,456,440, \
137 424,440,424,456,464,488,456,424,456,456,424,439,424,472,472,479, \
138 456,456,432,480,480,455,480,440,472,488,480,488,440,440,464,440, \
139 488,439,488,488,488,488,456,487,488,488,488,456,432,487,504,488, \
140 480,456,488,488,487,488,488,487,488,520,520,520,488,520,520,439, \
141 480,472,480,479,456,487,488,488,496,487,472,488,488,520,520,488, \
142 520,488,520,520,496,488,520,488,488,504,488,520,440,600,536,600, \
143 456,520,536,536,600,600,568,567,600,600,568,599,600,600,600,599, \
144 598,600,600,568,599,600,568,600,600,599,600,600,600,568,568,599, \
145 600,600,600,600,599,600,600,599,600,599,600,600,599,599,600,599, \
146 599,599,600,600,600,599,600,600,599,599,600,600,632,600,600,600, \
147 664,599,600,600,600,600,600,600,631,632,632,632,600,632,632,599, \
148 663,664,624,631,632,632,664,662,663,664,664,632,632,664,632,663, \
149 664,631,664,662,662,664,664,662,664,663,664,663,663,663,664,664, \
150 664,662,663,664,664,664,664,663,664,663,664,664,664,664,664,663, \
151 664,632,663,664,664,663,664,664,664,631,664,663,696,696,696,664, \
152 600,664,664,662,664,664,664,664,664,663,664,663,664,664,663,664, \
153 664,663,664,664,632,664,664,663,664,663,664,663,664,664,728,663, \
154 664,727,663,664,664,663,664,664,696,632,728,728,663,663,664,696, \
155 664,664,696,728,664,664,728,728,696,663,664,663,728,664,664,655, \
156 696,663,664,661,664,695,696,663,656,728,664,663,664,663,664,664, \
157 696,664,663,663,664,695,696,664,664,695,696,662,664,663,664,663 \
158
159#define MPFR_DIVHIGH_TAB  \
160 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*0-15*/ \
161 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*16-31*/ \
162 0,0,0,0,0,20,23,23,23,23,24,23,24,25,27,27, /*32-47*/ \
163 27,27,31,29,32,29,30,30,32,31,33,31,35,35,36,35, /*48-63*/ \
164 36,36,42,42,37,41,41,45,42,42,46,43,44,45,42,45, /*64-79*/ \
165 44,45,49,47,46,49,50,54,50,56,51,56,56,58,54,56, /*80-95*/ \
166 60,54,56,59,55,58,54,56,63,60,62,56,60,66,64,66, /*96-111*/ \
167 63,62,67,68,62,66,64,68,68,72,67,70,67,68,66,67, /*112-127*/ \
168 70,68,74,83,72,70,83,76,84,84,83,84,84,84,82,82, /*128-143*/ \
169 84,84,84,87,84,84,84,82,84,84,84,86,84,88,91,92, /*144-159*/ \
170 88,98,99,84,88,91,90,104,87,99,96,94,100,100,92,94, /*160-175*/ \
171 92,92,112,105,100,104,100,100,104,104,104,104,112,112,104,105, /*176-191*/ \
172 99,112,112,103,104,111,112,112,104,104,112,112,111,112,112,112, /*192-207*/ \
173 111,111,112,128,112,128,111,112,116,120,120,116,120,118,118,128, /*208-223*/ \
174 127,128,128,120,136,136,136,128,135,136,136,132,136,130,128,136, /*224-239*/ \
175 128,136,136,136,126,136,136,136,135,136,136,136,136,136,136,136, /*240-255*/ \
176 136,136,136,136,144,148,168,136,144,136,168,143,142,144,150,143, /*256-271*/ \
177 168,168,143,168,167,167,168,176,176,166,168,171,168,168,172,168, /*272-287*/ \
178 168,176,168,167,168,176,176,176,176,168,176,176,176,172,176,175, /*288-303*/ \
179 176,176,175,176,176,176,174,175,176,168,168,167,168,168,168,183, /*304-319*/ \
180 175,176,176,176,168,176,176,173,176,175,176,176,174,175,175,171, /*320-335*/ \
181 176,184,198,176,176,184,175,175,208,186,186,198,208,184,186,177, /*336-351*/ \
182 208,208,208,209,207,208,209,184,192,197,208,184,192,208,192,208, /*352-367*/ \
183 224,192,222,198,208,196,198,198,210,207,222,216,208,222,222,222, /*368-383*/ \
184 198,198,210,207,224,208,222,222,224,208,224,222,224,224,222,208, /*384-399*/ \
185 210,216,222,222,208,216,222,222,208,224,224,224,222,224,224,228, /*400-415*/ \
186 224,223,224,224,240,224,240,222,248,224,224,222,240,256,240,224, /*416-431*/ \
187 256,257,222,255,224,228,224,256,240,256,240,255,256,255,256,240, /*432-447*/ \
188 256,255,256,257,256,252,256,256,256,256,256,256,264,256,255,256, /*448-463*/ \
189 257,272,256,255,272,270,256,256,272,256,240,257,288,272,252,254, /*464-479*/ \
190 257,256,256,257,256,270,272,255,256,256,267,256,256,255,254,256, /*480-495*/ \
191 255,256,257,268,264,269,256,255,256,256,288,256,269,270,267,336, /*496-511*/ \
192 272,272,272,267,270,264,272,269,288,270,288,288,288,272,272,337, /*512-527*/ \
193 288,336,336,335,288,352,336,334,286,344,288,296,344,288,288,293, /*528-543*/ \
194 288,304,336,336,336,336,336,336,336,288,336,336,304,352,352,336, /*544-559*/ \
195 336,336,336,336,336,336,336,336,336,343,344,340,336,335,336,336, /*560-575*/ \
196 336,336,336,336,342,336,336,336,336,344,352,336,342,335,336,335, /*576-591*/ \
197 336,352,344,344,352,352,352,344,352,352,336,351,350,352,352,352, /*592-607*/ \
198 352,352,341,336,352,335,336,336,352,335,336,344,336,336,334,336, /*608-623*/ \
199 336,343,336,344,344,344,352,344,352,336,344,335,352,343,351,344, /*624-639*/ \
200 344,341,342,352,344,351,352,336,352,336,352,344,336,336,341,344, /*640-655*/ \
201 336,336,344,336,352,336,352,342,352,344,344,344,347,344,344,341, /*656-671*/ \
202 344,352,353,352,352,351,352,359,352,351,352,352,352,352,352,352, /*672-687*/ \
203 352,349,350,351,352,367,368,352,357,352,352,352,360,352,353,353, /*688-703*/ \
204 391,408,408,360,368,388,384,368,392,408,400,416,416,384,392,367, /*704-719*/ \
205 384,408,408,416,408,408,408,392,392,416,416,408,416,415,408,415, /*720-735*/ \
206 416,416,412,408,414,420,448,417,408,408,416,408,408,413,416,408, /*736-751*/ \
207 416,408,415,415,416,431,416,416,416,392,448,415,416,432,416,444, /*752-767*/ \
208 416,448,408,416,416,416,408,408,448,444,416,416,416,416,408,416, /*768-783*/ \
209 408,448,414,415,416,417,418,448,444,416,416,406,416,416,414,432, /*784-799*/ \
210 448,448,416,416,432,448,416,432,448,444,438,448,448,416,448,416, /*800-815*/ \
211 444,448,444,448,416,432,416,416,416,432,416,448,448,416,432,448, /*816-831*/ \
212 444,448,444,448,447,466,448,432,432,448,448,432,448,448,440,444, /*832-847*/ \
213 454,432,448,480,438,447,504,432,448,448,448,448,448,447,448,447, /*848-863*/ \
214 448,446,448,444,443,448,444,448,446,448,448,503,536,448,448,448, /*864-879*/ \
215 448,448,448,448,448,447,450,448,514,448,512,480,448,512,480,454, /*880-895*/ \
216 512,500,504,476,480,536,536,536,504,536,480,504,504,480,536,504, /*896-911*/ \
217 480,504,504,504,480,504,512,480,480,512,480,512,512,480,478,536, /*912-927*/ \
218 480,489,504,513,536,504,511,479,480,480,534,511,511,512,536,512, /*928-943*/ \
219 512,504,504,504,504,504,504,512,511,509,512,512,504,511,544,504, /*944-959*/ \
220 544,504,512,544,544,536,512,504,543,511,512,513,540,511,511,504, /*960-975*/ \
221 544,511,508,504,512,536,536,504,504,512,536,544,504,544,512,536, /*976-991*/ \
222 535,512,512,541,504,536,536,536,536,504,544,511,544,511,544,512, /*992-1007*/ \
223 511,512,544,514,544,535,544,544,544,536,536,536,536,536,544,544 /*1008-1023*/ \
224
225#define MPFR_MUL_THRESHOLD 13 /* limbs */
226#define MPFR_SQR_THRESHOLD 18 /* limbs */
227#define MPFR_DIV_THRESHOLD 3 /* limbs */
228#define MPFR_EXP_2_THRESHOLD 522 /* bits */
229#define MPFR_EXP_THRESHOLD 6920 /* bits */
230#define MPFR_SINCOS_THRESHOLD 28160 /* bits */
231#define MPFR_AI_THRESHOLD1 -24100 /* threshold for negative input of mpfr_ai */
232#define MPFR_AI_THRESHOLD2 2303
233#define MPFR_AI_THRESHOLD3 37484
234/* Tuneup completed successfully, took 787 seconds */
235