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 4.8.5 */
23/* generated on gcc110.fsffrance.org (POWER7) with GMP 6.1.2,
24   where GMP uses -m64  -mtune=power7 -O3 */
25
26#define MPFR_MULHIGH_TAB  \
27 -1,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0, \
28 0,0,0,0,0,0,0,0,0,0,0,0,0,19,19,19, \
29 21,21,22,24,24,24,24,24,24,24,24,24,30,30,32,42, \
30 30,34,34,34,34,38,38,32,32,32,40,40,52,40,42,42, \
31 42,52,52,52,52,48,48,48,48,52,52,52,52,52,52,52, \
32 52,52,52,52,52,52,56,52,52,60,60,60,60,60,64,60, \
33 64,68,68,68,68,68,68,68,68,75,68,74,68,78,75,74, \
34 75,68,75,86,78,87,87,87,93,93,87,87,87,93,87,87, \
35 87,99,86,87,87,87,99,90,92,93,84,99,99,74,93,99, \
36 99,99,98,126,99,99,99,99,102,102,102,104,104,108,110,110, \
37 108,111,111,114,114,117,117,117,117,117,122,123,123,123,123,123, \
38 123,123,126,128,128,123,141,153,123,141,141,141,138,141,141,152, \
39 153,153,120,153,152,153,153,153,152,162,153,117,153,153,153,153, \
40 153,153,128,153,153,152,153,153,153,152,153,153,153,153,153,156, \
41 156,152,153,153,153,153,153,153,153,153,153,153,153,153,153,177, \
42 177,177,177,153,176,216,153,177,204,153,204,177,168,204,204,168, \
43 204,204,204,204,204,177,204,204,204,204,204,204,202,204,204,204, \
44 204,204,204,202,203,204,204,204,204,204,204,204,204,204,204,204, \
45 204,204,203,204,204,204,204,204,204,204,204,204,204,204,204,204, \
46 236,204,204,234,204,204,203,236,236,236,236,236,236,236,236,236, \
47 236,236,235,236,235,236,236,236,236,236,236,236,236,236,236,236, \
48 236,236,236,236,236,236,268,268,236,268,236,268,268,268,268,268, \
49 268,268,268,266,267,268,267,268,268,268,268,268,267,268,268,268, \
50 268,268,267,268,268,306,306,306,306,304,305,306,306,336,306,306, \
51 236,305,306,306,306,306,306,306,306,306,306,306,306,306,306,306, \
52 306,306,306,306,306,306,306,306,306,306,306,306,306,306,305,306, \
53 306,306,306,306,306,306,306,306,330,306,306,305,306,306,306,305, \
54 306,306,306,306,354,306,354,354,353,306,353,354,354,354,354,354, \
55 354,354,353,354,354,354,353,354,354,354,354,354,354,354,354,354, \
56 424,354,354,354,354,354,353,354,354,354,352,408,354,354,354,354, \
57 354,408,408,354,408,408,408,407,408,408,408,408,408,408,407,408, \
58 408,408,408,408,402,408,402,402,407,408,408,408,408,408,408,407, \
59 408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408, \
60 406,407,408,408,408,408,408,408,408,406,408,408,408,408,407,408, \
61 408,408,407,408,408,407,408,408,408,408,408,407,407,408,408,408, \
62 408,408,408,472,472,472,472,472,472,472,472,472,472,472,472,472, \
63 472,472,472,472,472,472,472,472,471,472,472,472,472,472,472,472, \
64 470,471,472,472,472,472,472,472,472,472,472,472,472,472,472,472, \
65 472,472,471,472,472,470,472,472,472,472,470,471,472,472,472,472, \
66 472,472,472,472,536,536,536,536,535,536,535,536,536,536,535,536, \
67 536,536,536,535,536,536,536,534,535,536,536,536,536,536,536,536, \
68 536,535,536,536,536,536,536,536,536,536,535,536,536,536,536,536, \
69 536,536,535,535,536,535,536,536,536,536,536,535,536,536,536,536, \
70 536,536,536,535,536,536,536,536,536,536,536,536,536,591,536,536, \
71 536,536,592,590,536,591,592,592,592,591,591,592,592,591,592,592, \
72 592,591,591,592,592,592,592,592,592,592,591,592,592,590,590,592, \
73 592,592,590,591,592,592,592,592,592,592,592,592,592,592,592,592, \
74 591,592,592,592,592,591,592,592,616,592,592,591,591,616,592,592, \
75 592,592,616,616,616,592,616,616,592,616,592,616,640,616,616,591, \
76 592,592,589,592,640,591,592,616,688,688,592,688,688,687,688,686, \
77 688,688,688,688,687,688,688,688,686,687,688,688,688,687,688,688, \
78 688,686,688,688,688,615,688,685,688,688,687,688,688,687,688,688, \
79 688,688,686,687,688,688,688,688,688,688,688,688,688,687,687,688, \
80 688,688,688,688,688,688,688,688,688,686,687,688,688,688,688,688, \
81 688,688,712,736,736,688,686,736,688,736,688,736,687,735,736,736, \
82 688,736,734,735,736,688,688,736,688,736,688,687,687,688,688,688, \
83 688,736,736,688,688,736,736,736,736,736,784,736,688,736,736,782, \
84 783,784,783,784,784,784,784,776,784,784,783,784,784,782,783,784, \
85 784,784,784,783,784,784,783,784,784,784,784,784,784,784,784,784, \
86 783,784,784,784,783,783,784,784,784,784,784,784,784,784,784,784, \
87 784,784,784,783,784,784,783,783,784,784,784,782,783,784,784,783, \
88 784,784,783,784,783,784,784,784,784,783,784,783,784,784,784,784, \
89 784,784,783,784,784,783,784,784,784,783,784,784,784,784,784,783, \
90 782,783,784,784,784,784,784,784,784,784,783,784,784,784,784,784 \
91
92#define MPFR_SQRHIGH_TAB  \
93 -1,0,-1,0,0,0,-1,-1,-1,7,8,-1,10,11,11,11, \
94 11,11,11,11,13,13,13,13,15,15,15,15,16,17,19,19, \
95 19,19,19,19,21,22,23,23,23,23,24,25,27,27,25,29, \
96 27,27,29,29,31,31,31,31,31,38,38,38,38,38,38,38, \
97 38,36,36,38,38,38,38,38,42,42,44,42,46,44,46,44, \
98 45,46,46,46,46,46,50,54,50,50,52,52,54,54,54,50, \
99 52,52,54,54,52,52,54,54,54,54,56,58,60,60,60,62, \
100 60,62,62,64,64,64,76,75,76,76,76,72,75,76,76,76, \
101 76,76,76,76,84,84,76,76,84,88,88,88,88,92,92,92, \
102 92,92,92,84,92,76,92,92,88,92,92,92,88,90,92,92, \
103 92,88,92,92,91,91,92,92,91,92,92,92,92,92,92,92, \
104 92,92,95,111,111,111,111,110,111,111,111,111,111,111,111,111, \
105 111,111,111,111,111,114,111,114,117,116,111,110,121,116,129,129, \
106 134,135,135,135,129,135,192,135,135,135,135,135,135,135,135,135, \
107 135,135,141,135,129,129,129,135,135,135,135,135,135,134,135,141, \
108 140,141,141,135,144,135,160,184,147,141,147,153,147,152,153,159, \
109 153,159,159,159,159,159,159,165,159,159,159,159,159,165,164,159, \
110 159,159,158,159,159,159,177,171,177,159,159,177,158,177,159,159, \
111 159,158,159,159,159,171,171,159,159,171,171,159,177,177,171,171, \
112 177,174,177,159,177,177,171,177,176,177,171,171,177,177,176,171, \
113 177,177,177,175,176,177,177,176,177,177,204,204,196,196,204,212, \
114 204,188,212,212,196,196,211,212,212,212,212,212,212,212,211,212, \
115 204,204,212,212,212,212,212,211,212,212,212,212,212,220,220,236, \
116 220,220,220,228,228,228,220,236,228,228,228,236,236,244,234,235, \
117 236,236,236,236,244,244,236,243,244,244,244,244,244,244,244,236, \
118 244,244,227,236,243,236,244,236,236,236,244,244,244,244,244,244, \
119 244,244,244,244,244,244,220,219,220,244,228,220,236,236,228,233, \
120 236,235,236,236,236,240,236,244,236,236,244,244,242,243,244,243, \
121 244,244,244,244,244,244,243,244,244,236,244,244,244,318,318,244, \
122 244,244,318,318,318,270,244,318,244,244,270,270,270,270,318,318, \
123 318,318,318,318,282,318,318,318,318,318,318,318,318,318,318,318, \
124 294,293,294,318,294,294,305,306,306,306,294,305,306,317,306,306, \
125 306,306,318,318,318,318,318,317,318,317,318,318,318,318,318,318, \
126 330,318,318,317,306,318,318,317,318,318,318,318,342,342,342,318, \
127 318,318,318,408,318,318,318,330,354,342,318,318,354,353,354,354, \
128 354,354,342,354,353,354,354,360,342,354,342,354,353,342,354,354, \
129 342,341,342,353,354,354,354,353,354,354,354,354,354,354,354,354, \
130 354,354,354,360,360,376,392,318,423,424,391,424,376,376,392,376, \
131 392,391,408,392,376,392,408,423,424,424,392,424,423,424,424,424, \
132 424,354,424,408,424,424,424,424,424,424,408,424,424,423,408,424, \
133 424,408,424,424,424,424,424,424,424,423,424,424,424,424,424,424, \
134 424,439,423,424,424,424,424,424,424,424,440,440,424,439,423,424, \
135 600,439,423,424,456,424,424,472,424,424,456,456,456,423,424,424, \
136 456,424,424,472,472,472,424,424,424,471,472,424,424,424,424,424, \
137 424,424,472,472,488,424,423,424,424,424,488,488,488,439,488,487, \
138 440,440,440,488,488,488,472,440,456,440,472,456,455,455,472,472, \
139 456,456,456,472,456,472,472,472,472,488,488,471,471,486,472,472, \
140 472,472,472,472,472,471,472,472,472,472,471,488,488,488,488,488, \
141 488,504,488,504,600,391,488,752,488,488,488,408,568,488,488,488, \
142 488,488,488,487,488,488,488,488,488,488,488,488,488,472,472,488, \
143 488,488,488,599,488,600,600,488,488,488,599,600,600,599,600,488, \
144 600,600,599,600,600,600,600,600,600,600,600,600,600,600,600,599, \
145 598,599,600,600,600,599,600,600,600,600,616,600,424,568,568,568, \
146 568,584,568,600,598,568,600,568,431,824,600,600,600,599,600,600, \
147 600,600,600,600,-1,784,600,600,600,599,595,600,600,440,600,600, \
148 600,600,600,600,600,599,600,600,600,600,597,600,600,600,600,600, \
149 600,600,600,597,600,600,600,600,600,600,600,600,599,600,599,600, \
150 600,600,600,599,600,600,599,600,600,600,600,598,662,600,600,600, \
151 600,600,600,600,599,599,600,600,664,600,600,599,600,664,664,663, \
152 664,664,664,600,664,664,664,664,664,664,600,664,664,664,664,664, \
153 600,600,600,664,600,663,600,600,600,600,664,600,600,600,696,664, \
154 696,598,600,600,600,664,600,600,664,664,600,600,600,600,600,600, \
155 600,600,728,728,600,728,728,728,728,600,725,727,727,728,727,728, \
156 727,728,728,727,728,728,728,728,728,728,728,728,727,728,728,728 \
157
158#define MPFR_DIVHIGH_TAB  \
159 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*0-15*/ \
160 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*16-31*/ \
161 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*32-47*/ \
162 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*48-63*/ \
163 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41, /*64-79*/ \
164 42,42,0,0,48,48,0,46,48,48,50,49,49,48,49,50, /*80-95*/ \
165 51,0,0,0,79,52,0,0,0,54,57,68,60,58,0,59, /*96-111*/ \
166 58,59,62,0,60,66,68,66,68,68,68,66,66,68,68,68, /*112-127*/ \
167 76,68,76,68,68,69,75,76,70,79,73,84,76,75,78,76, /*128-143*/ \
168 81,84,80,80,84,81,80,84,84,80,80,81,80,84,84,85, /*144-159*/ \
169 84,83,104,96,84,96,96,92,96,96,96,132,104,100,98,104, /*160-175*/ \
170 104,104,104,104,104,104,104,104,104,104,104,104,104,104,100,100, /*176-191*/ \
171 104,104,112,104,100,120,120,104,104,119,112,112,118,104,120,120, /*192-207*/ \
172 112,120,118,118,119,120,113,114,119,112,128,136,112,120,116,122, /*208-223*/ \
173 118,132,120,119,120,136,118,120,119,120,128,136,128,136,132,136, /*224-239*/ \
174 132,128,136,135,136,132,128,136,130,136,136,132,135,135,136,132, /*240-255*/ \
175 132,136,136,134,135,135,136,149,135,136,135,136,136,136,138,140, /*256-271*/ \
176 156,150,156,148,150,149,161,150,148,162,160,148,156,160,150,152, /*272-287*/ \
177 157,150,168,160,160,150,150,152,160,160,168,168,168,156,156,160, /*288-303*/ \
178 156,161,160,168,160,160,160,162,168,160,160,167,168,166,174,173, /*304-319*/ \
179 167,168,198,192,168,168,174,192,168,192,168,168,168,168,184,192, /*320-335*/ \
180 192,194,208,193,192,192,192,192,208,192,192,208,197,206,204,208, /*336-351*/ \
181 192,207,200,204,204,191,192,208,204,208,192,208,208,208,208,209, /*352-367*/ \
182 208,208,208,208,208,216,192,208,192,209,192,198,208,206,204,208, /*368-383*/ \
183 208,208,208,207,208,208,216,208,208,216,208,208,208,208,206,208, /*384-399*/ \
184 208,206,207,222,206,208,208,208,208,209,208,207,240,208,209,223, /*400-415*/ \
185 240,233,240,220,234,216,240,240,219,233,240,222,222,224,224,232, /*416-431*/ \
186 240,240,239,240,236,240,240,240,240,241,240,238,240,240,240,240, /*432-447*/ \
187 300,240,245,239,240,240,233,240,236,240,240,240,240,240,241,236, /*448-463*/ \
188 240,426,240,240,240,256,240,240,240,240,239,240,270,272,241,241, /*464-479*/ \
189 256,246,245,256,246,245,257,272,246,256,256,272,264,272,272,268, /*480-495*/ \
190 256,256,272,255,272,264,256,270,270,272,272,272,269,256,304,272, /*496-511*/ \
191 268,300,306,300,272,304,300,299,264,300,294,270,270,490,272,300, /*512-527*/ \
192 272,272,272,300,306,300,301,298,304,300,300,312,298,304,304,306, /*528-543*/ \
193 300,299,306,312,336,312,300,298,298,300,300,318,288,299,282,305, /*544-559*/ \
194 304,298,304,305,299,303,300,300,300,304,304,312,312,306,306,299, /*560-575*/ \
195 304,312,312,312,300,312,324,304,529,299,300,318,306,312,336,304, /*576-591*/ \
196 300,300,300,306,312,312,312,332,305,336,336,384,336,312,324,312, /*592-607*/ \
197 316,312,348,312,312,328,312,353,336,320,336,336,336,318,336,332, /*608-623*/ \
198 335,348,336,336,328,324,335,336,336,322,335,336,336,336,324,328, /*624-639*/ \
199 384,384,384,336,384,336,336,336,336,336,336,384,336,342,335,384, /*640-655*/ \
200 336,336,384,335,384,336,336,383,335,408,335,408,336,384,408,384, /*656-671*/ \
201 408,408,407,384,384,408,416,384,384,408,408,384,408,408,408,408, /*672-687*/ \
202 408,408,384,408,408,408,408,408,416,408,416,408,408,408,408,416, /*688-703*/ \
203 408,384,408,416,416,408,408,408,408,408,408,407,408,408,416,384, /*704-719*/ \
204 408,407,408,408,384,383,406,407,407,416,384,415,416,408,416,408, /*720-735*/ \
205 407,416,408,408,416,406,384,384,408,408,408,406,408,407,408,408, /*736-751*/ \
206 384,408,408,408,408,416,408,408,408,416,415,408,384,408,415,408, /*752-767*/ \
207 408,408,408,405,408,408,408,408,408,408,408,408,416,416,416,408, /*768-783*/ \
208 416,416,406,416,408,414,407,408,407,407,414,408,408,408,416,408, /*784-799*/ \
209 415,416,416,408,408,416,415,416,416,416,416,416,416,416,448,415, /*800-815*/ \
210 416,472,416,416,415,416,415,480,416,416,416,480,440,416,480,448, /*816-831*/ \
211 440,464,440,466,477,424,472,432,470,472,456,460,464,480,448,480, /*832-847*/ \
212 440,480,480,480,472,464,480,464,480,472,467,480,480,479,480,480, /*848-863*/ \
213 478,480,472,472,480,480,479,480,472,480,480,470,480,480,480,472, /*864-879*/ \
214 480,468,464,470,472,472,476,480,480,472,478,478,480,480,877,472, /*880-895*/ \
215 480,479,480,480,512,480,479,480,756,466,472,480,466,464,478,466, /*896-911*/ \
216 480,480,472,480,462,480,472,480,478,478,480,480,479,480,480,480, /*912-927*/ \
217 488,480,478,472,480,480,488,480,480,480,480,472,480,480,480,536, /*928-943*/ \
218 477,512,480,480,480,536,480,477,479,480,480,792,511,512,512,512, /*944-959*/ \
219 493,512,501,512,527,512,528,536,488,536,512,536,512,512,535,528, /*960-975*/ \
220 508,534,512,512,512,512,544,512,532,512,528,534,536,536,544,536, /*976-991*/ \
221 535,540,528,528,610,536,528,528,609,612,608,536,544,612,544,536, /*992-1007*/ \
222 540,536,612,536,607,536,612,610,610,612,612,612,612,544,612,611 /*1008-1023*/ \
223
224#define MPFR_MUL_THRESHOLD 9 /* limbs */
225#define MPFR_SQR_THRESHOLD 14 /* limbs */
226#define MPFR_DIV_THRESHOLD 3 /* limbs */
227#define MPFR_EXP_2_THRESHOLD 580 /* bits */
228#define MPFR_EXP_THRESHOLD 10480 /* bits */
229#define MPFR_SINCOS_THRESHOLD 22904 /* bits */
230#define MPFR_AI_THRESHOLD1 -12474 /* threshold for negative input of mpfr_ai */
231#define MPFR_AI_THRESHOLD2 1158
232#define MPFR_AI_THRESHOLD3 20165
233/* Tuneup completed successfully, took 571 seconds */
234