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) with gmp 6.1.2 */
24
25#define MPFR_MULHIGH_TAB  \
26 -1,0,-1,0,0,0,0,0,0,0,0,0,9,9,9,9, \
27 10,10,11,12,13,12,13,14,15,16,17,18,17,18,19,20, \
28 23,24,24,24,24,26,26,28,28,24,24,24,28,30,28,28, \
29 32,32,30,32,32,34,36,36,36,34,38,38,40,38,40,40, \
30 48,48,46,48,48,48,48,48,48,48,48,48,48,52,56,56, \
31 56,56,56,56,56,60,60,60,64,56,56,64,64,60,60,60, \
32 64,64,64,64,75,64,75,64,64,69,75,75,64,81,84,84, \
33 80,81,81,80,81,81,81,84,87,87,87,87,84,92,87,81, \
34 81,90,93,92,93,93,87,90,90,93,92,93,93,93,92,93, \
35 92,93,104,93,105,93,99,105,105,104,105,108,105,105,108,105, \
36 105,108,110,111,111,110,111,114,117,114,117,116,105,117,116,117, \
37 141,141,141,141,141,141,141,141,140,141,141,141,141,141,141,141, \
38 140,141,141,141,141,141,141,141,141,140,141,141,141,153,140,140, \
39 141,141,141,141,141,141,165,165,165,165,165,153,165,165,165,165, \
40 153,165,165,165,165,177,165,188,165,165,188,165,165,188,165,165, \
41 188,188,165,188,188,188,188,188,188,188,188,188,188,188,186,188, \
42 188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,204, \
43 204,188,204,204,204,204,204,202,204,204,204,204,220,220,220,208, \
44 203,204,204,220,220,220,220,220,220,220,220,220,220,220,220,220, \
45 220,220,220,236,236,236,236,236,236,236,236,236,236,236,236,236, \
46 236,236,236,236,236,236,236,236,236,236,236,282,282,282,282,282, \
47 282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282, \
48 282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282, \
49 282,282,282,282,282,282,282,282,281,282,306,282,282,282,306,282, \
50 282,282,330,329,330,330,330,330,306,330,306,330,306,306,330,306, \
51 306,330,330,330,330,330,330,330,330,330,330,330,330,330,330,330, \
52 330,330,330,330,329,330,330,330,330,330,360,360,330,330,360,360, \
53 360,330,360,360,360,360,360,360,360,360,360,360,368,368,360,376, \
54 376,376,368,376,368,376,376,376,376,376,376,376,376,376,368,368, \
55 376,376,376,376,376,376,375,376,376,376,376,376,368,368,376,376, \
56 408,408,408,408,408,376,408,408,376,375,376,439,376,440,440,376, \
57 408,376,376,376,376,376,408,376,440,440,440,440,440,440,440,440, \
58 440,440,432,432,440,440,440,440,440,440,439,440,440,440,440,439, \
59 439,440,408,440,440,440,439,440,440,440,440,440,440,440,472,440, \
60 440,472,472,440,440,440,440,440,440,440,440,439,440,440,440,440, \
61 440,440,440,440,440,439,440,440,440,440,440,440,440,440,440,440, \
62 440,440,440,440,440,472,439,440,440,440,472,472,472,472,472,472, \
63 472,470,472,472,504,471,472,472,480,472,472,472,472,472,472,503, \
64 472,472,472,472,472,472,472,472,504,503,504,504,504,504,504,504, \
65 472,504,504,504,504,504,504,504,504,504,504,504,504,496,504,504, \
66 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
67 504,504,504,504,504,504,504,504,544,544,544,544,544,544,544,544, \
68 544,536,544,544,544,544,544,544,544,544,544,544,544,544,544,544, \
69 544,544,544,544,544,544,544,544,544,544,592,592,592,592,592,592, \
70 591,592,592,591,592,592,568,568,592,591,592,592,592,592,592,640, \
71 592,592,592,592,592,592,592,592,592,592,592,591,592,592,592,592, \
72 592,592,592,624,624,623,630,631,632,632,632,632,632,592,632,639, \
73 640,640,640,639,640,640,640,640,640,632,640,632,632,632,632,632, \
74 640,632,632,639,632,632,632,640,639,640,640,640,664,664,640,640, \
75 640,640,640,664,664,664,664,664,664,664,640,663,640,640,664,664, \
76 640,664,640,664,664,664,664,664,640,664,688,688,688,687,688,688, \
77 680,640,664,664,664,664,688,664,664,688,664,688,640,664,664,664, \
78 639,688,640,640,640,640,712,640,711,712,712,736,688,712,712,712, \
79 736,664,664,664,688,664,664,664,728,664,728,728,728,728,736,736, \
80 736,735,736,736,736,736,728,728,735,736,736,736,736,736,736,736, \
81 735,736,735,736,728,736,736,728,728,735,736,735,736,736,736,736, \
82 736,736,735,736,735,736,736,735,736,728,728,728,728,736,736,735, \
83 735,736,736,736,736,736,736,728,735,736,736,736,736,736,736,736, \
84 735,736,736,736,736,736,736,736,736,736,736,736,736,735,734,736, \
85 736,735,736,736,736,736,736,736,735,736,736,735,736,736,735,735, \
86 736,736,736,784,736,735,784,784,784,784,736,736,824,783,736,735, \
87 783,784,784,736,784,824,784,784,784,784,784,784,832,736,735,832, \
88 824,784,736,736,824,736,824,784,784,784,784,832,832,784,824,824, \
89 824,856,822,824,824,824,824,824,824,824,824,824,824,824,824,824 \
90
91#define MPFR_SQRHIGH_TAB  \
92 -1,-1,-1,-1,-1,-1,-1,-1,6,6,7,7,8,9,9,9, \
93 10,10,11,12,13,14,13,14,15,16,17,17,17,18,20,20, \
94 21,22,19,19,20,21,24,25,22,22,23,24,24,25,26,27, \
95 26,27,27,27,34,34,30,34,34,34,34,34,38,38,38,38, \
96 38,42,40,40,44,46,44,38,40,46,42,42,44,44,46,46, \
97 46,48,48,48,48,48,50,48,48,50,48,48,50,60,60,60, \
98 50,60,52,60,60,60,60,60,60,64,68,64,64,68,64,64, \
99 68,64,64,68,68,68,68,72,68,68,76,76,76,76,76,76, \
100 76,80,80,80,80,80,80,80,80,76,80,84,84,88,84,84, \
101 76,80,76,80,80,84,80,84,84,84,88,88,88,92,91,92, \
102 92,92,96,96,96,88,92,92,92,92,96,96,96,92,96,96, \
103 95,105,96,110,111,111,117,111,117,117,117,117,117,117,117,123, \
104 123,117,123,117,117,117,117,117,116,129,135,129,123,135,135,123, \
105 123,129,129,135,135,135,134,135,129,135,140,135,140,141,141,141, \
106 141,141,141,141,141,141,141,141,140,141,140,140,141,141,141,141, \
107 141,140,147,140,141,141,141,153,147,153,147,147,172,141,140,141, \
108 140,164,172,164,171,164,172,172,141,141,172,180,180,188,180,180, \
109 180,180,188,180,188,188,188,188,187,188,188,180,188,172,188,188, \
110 187,188,187,188,188,180,172,180,180,196,179,180,188,188,188,187, \
111 188,188,186,185,188,188,188,188,188,196,188,188,188,196,188,188, \
112 188,188,188,196,195,188,188,188,196,196,187,188,188,188,188,196, \
113 195,195,195,196,195,196,204,204,212,212,204,188,196,196,196,204, \
114 212,212,212,212,212,204,234,234,234,258,234,246,234,246,234,234, \
115 246,246,246,234,246,258,258,246,246,234,258,258,258,258,258,246, \
116 258,270,258,258,258,258,258,270,258,270,257,258,270,258,258,270, \
117 270,282,270,282,282,270,282,281,282,282,282,282,282,282,282,282, \
118 282,282,270,282,282,282,282,282,282,282,282,282,282,282,282,282, \
119 282,282,282,282,282,282,282,282,282,282,282,282,282,282,312,312, \
120 282,312,312,312,312,312,312,312,312,328,312,282,282,328,282,270, \
121 282,282,328,282,328,328,328,328,282,328,344,282,282,282,328,344, \
122 328,344,344,344,344,360,344,344,360,344,360,344,344,344,344,344, \
123 344,360,360,344,344,360,360,344,344,360,344,344,360,360,360,360, \
124 360,360,328,360,328,360,328,344,360,328,328,360,344,360,360,344, \
125 360,360,344,360,344,344,360,344,360,344,344,344,344,360,344,344, \
126 360,360,360,359,360,360,360,360,360,360,360,360,360,360,359,360, \
127 360,360,360,360,360,360,359,359,360,360,360,344,360,360,360,360, \
128 360,360,360,360,360,360,360,360,391,360,392,360,360,359,360,359, \
129 360,360,360,360,360,360,360,360,360,360,359,360,360,360,424,424, \
130 423,424,424,424,472,424,472,424,424,424,424,424,424,471,472,472, \
131 424,472,472,424,472,472,472,472,472,424,424,472,472,424,424,472, \
132 472,424,472,472,472,472,472,472,472,472,472,471,472,472,472,472, \
133 472,472,472,472,472,472,471,472,471,472,472,472,472,472,472,472, \
134 472,471,472,472,472,504,504,472,472,472,472,472,504,504,472,504, \
135 472,504,504,504,472,504,504,472,472,472,471,472,472,472,472,471, \
136 472,472,472,472,472,472,472,472,472,472,471,472,472,504,504,472, \
137 472,504,472,536,472,472,471,472,472,472,536,472,472,536,536,536, \
138 536,536,536,536,504,504,504,536,536,504,536,536,504,536,504,504, \
139 536,504,568,504,568,568,568,568,568,568,568,568,568,568,568,568, \
140 568,567,568,536,568,536,568,568,568,536,568,568,536,536,536,536, \
141 536,568,536,536,536,536,568,536,536,568,536,536,568,536,536,568, \
142 568,568,568,568,568,568,568,568,568,568,567,568,568,568,568,568, \
143 568,568,568,568,568,568,567,568,567,568,568,600,600,568,568,568, \
144 568,600,600,568,600,600,568,600,600,600,568,600,600,600,600,600, \
145 600,600,600,600,600,632,599,600,600,600,600,600,600,600,600,600, \
146 632,600,568,600,568,600,568,568,632,568,631,600,568,568,568,568, \
147 632,632,632,632,624,632,631,600,624,632,632,600,600,632,632,632, \
148 600,600,600,600,600,600,632,600,632,600,600,600,664,664,632,664, \
149 664,600,568,600,664,568,600,664,568,568,600,600,568,632,632,632, \
150 599,600,568,600,632,632,632,632,600,600,568,600,600,632,632,600, \
151 600,632,599,600,600,632,599,600,600,600,600,600,600,600,664,600, \
152 600,664,600,664,632,696,696,696,696,696,696,696,695,696,696,695, \
153 696,696,632,632,632,632,632,632,632,632,632,632,632,632,632,631, \
154 632,632,632,632,632,631,728,728,632,632,696,632,696,696,696,664, \
155 696,696,696,664,662,664,664,664,664,664,664,664,664,664,664,664 \
156
157#define MPFR_DIVHIGH_TAB  \
158 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*0-15*/ \
159 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*16-31*/ \
160 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*32-47*/ \
161 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*48-63*/ \
162 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*64-79*/ \
163 0,0,0,0,0,0,0,0,48,0,0,0,0,0,0,50, /*80-95*/ \
164 54,55,0,52,56,52,56,56,58,55,58,60,59,60,64,59, /*96-111*/ \
165 64,59,62,68,60,60,64,64,68,62,64,66,72,68,66,68, /*112-127*/ \
166 68,68,68,68,71,69,74,76,70,78,72,72,72,72,78,74, /*128-143*/ \
167 77,75,78,78,78,78,84,77,84,79,80,79,80,86,92,92, /*144-159*/ \
168 83,83,92,92,96,96,96,92,96,96,96,92,92,104,96,104, /*160-175*/ \
169 92,104,96,104,96,96,96,104,104,104,112,104,104,104,112,116, /*176-191*/ \
170 112,112,112,104,112,120,116,112,116,120,112,112,118,104,119,120, /*192-207*/ \
171 112,120,124,124,112,128,112,120,116,116,128,112,120,128,116,120, /*208-223*/ \
172 128,116,120,120,120,128,120,128,128,120,128,128,128,128,124,128, /*224-239*/ \
173 128,124,128,128,128,128,128,128,128,128,128,128,135,136,136,132, /*240-255*/ \
174 136,136,132,134,135,136,137,149,135,160,136,136,156,150,160,160, /*256-271*/ \
175 144,160,144,148,160,160,161,144,144,156,160,156,156,160,160,160, /*272-287*/ \
176 160,150,162,148,160,150,158,158,160,174,156,160,164,160,160,162, /*288-303*/ \
177 156,160,160,168,160,168,158,172,160,159,160,184,162,192,184,174, /*304-319*/ \
178 184,173,168,192,185,186,184,184,184,184,192,192,168,184,184,191, /*320-335*/ \
179 172,184,184,185,192,186,185,184,185,186,192,184,184,184,184,192, /*336-351*/ \
180 184,182,192,191,185,189,192,184,192,192,192,184,184,208,192,185, /*352-367*/ \
181 192,216,208,216,208,192,192,208,192,192,192,192,192,208,208,224, /*368-383*/ \
182 216,216,208,207,222,208,224,224,208,216,232,224,208,208,208,208, /*384-399*/ \
183 232,208,224,224,224,208,216,224,228,216,208,224,232,240,224,222, /*400-415*/ \
184 224,224,224,224,224,216,232,224,232,232,216,216,232,224,232,232, /*416-431*/ \
185 240,240,224,224,224,224,232,228,246,240,232,232,240,240,239,240, /*432-447*/ \
186 240,240,232,232,240,240,240,256,256,240,240,256,240,256,253,240, /*448-463*/ \
187 256,256,256,240,255,256,240,256,256,264,256,240,240,240,256,256, /*464-479*/ \
188 256,256,248,256,257,256,256,256,256,256,256,256,264,256,256,256, /*480-495*/ \
189 256,256,256,256,256,288,256,270,288,256,288,256,270,256,276,288, /*496-511*/ \
190 272,270,282,288,276,276,270,288,288,288,288,276,276,288,288,288, /*512-527*/ \
191 288,288,280,288,276,272,288,288,288,276,272,280,288,312,276,288, /*528-543*/ \
192 284,288,288,312,288,288,288,288,312,316,288,306,288,288,312,312, /*544-559*/ \
193 288,312,288,312,320,304,305,288,312,320,320,312,336,288,312,312, /*560-575*/ \
194 312,330,312,312,330,320,300,336,312,320,312,312,312,312,320,336, /*576-591*/ \
195 316,312,312,312,320,312,348,322,318,312,336,336,312,320,336,312, /*592-607*/ \
196 316,324,336,312,336,384,312,324,384,368,336,320,384,320,336,384, /*608-623*/ \
197 384,320,316,336,320,368,384,384,368,330,384,368,384,336,384,368, /*624-639*/ \
198 384,368,384,336,384,336,336,336,384,336,336,384,384,384,384,370, /*640-655*/ \
199 384,368,384,368,384,384,384,384,368,354,359,368,336,368,368,368, /*656-671*/ \
200 384,384,384,368,384,384,368,384,384,376,368,384,369,384,384,368, /*672-687*/ \
201 372,384,384,384,384,384,368,368,384,368,368,384,383,368,369,368, /*688-703*/ \
202 370,368,368,369,416,384,384,384,384,384,384,384,368,384,384,384, /*704-719*/ \
203 384,416,416,384,384,369,368,416,368,368,384,384,384,384,384,384, /*720-735*/ \
204 384,384,384,384,384,384,384,384,384,384,384,384,382,376,384,408, /*736-751*/ \
205 384,384,384,382,408,384,384,416,384,384,416,384,384,384,448,416, /*752-767*/ \
206 416,432,416,416,416,416,416,416,416,416,416,432,432,416,408,432, /*768-783*/ \
207 432,416,416,416,416,416,416,416,432,416,432,416,432,416,416,416, /*784-799*/ \
208 432,440,416,432,432,416,448,416,416,416,448,416,416,416,448,464, /*800-815*/ \
209 464,432,432,416,448,416,448,464,448,464,464,464,440,456,440,448, /*816-831*/ \
210 480,472,480,432,432,464,448,432,480,464,480,432,464,480,432,480, /*832-847*/ \
211 432,440,432,432,448,440,480,464,480,480,440,448,480,448,448,440, /*848-863*/ \
212 448,464,448,466,448,448,480,448,448,448,512,466,480,480,480,456, /*864-879*/ \
213 464,448,464,464,464,448,464,464,512,464,512,480,480,480,464,480, /*880-895*/ \
214 480,480,480,480,512,480,480,480,480,456,464,464,466,464,512,464, /*896-911*/ \
215 480,480,512,464,512,468,512,472,512,466,480,464,512,480,512,480, /*912-927*/ \
216 480,480,510,512,480,480,480,480,480,512,480,562,512,480,512,480, /*928-943*/ \
217 512,512,480,480,480,538,480,480,480,528,540,480,564,512,540,512, /*944-959*/ \
218 540,512,564,512,512,512,564,550,564,512,512,512,561,512,563,563, /*960-975*/ \
219 512,512,512,512,564,512,512,512,564,564,512,564,563,564,512,540, /*976-991*/ \
220 562,540,528,512,540,512,552,512,552,560,512,512,552,564,540,552, /*992-1007*/ \
221 540,561,562,552,576,564,540,562,552,562,563,562,564,562,564,564 /*1008-1023*/ \
222
223#define MPFR_MUL_THRESHOLD 10 /* limbs */
224#define MPFR_SQR_THRESHOLD 13 /* limbs */
225#define MPFR_DIV_THRESHOLD 5 /* limbs */
226#define MPFR_EXP_2_THRESHOLD 1023 /* bits */
227#define MPFR_EXP_THRESHOLD 10090 /* bits */
228#define MPFR_SINCOS_THRESHOLD 23323 /* bits */
229#define MPFR_AI_THRESHOLD1 -14098 /* threshold for negative input of mpfr_ai */
230#define MPFR_AI_THRESHOLD2 1378
231#define MPFR_AI_THRESHOLD3 21450
232/* Tuneup completed successfully, took 699 seconds */
233