mparam.h revision 1.1.1.1
1/* Various Thresholds of MPFR, not exported.  -*- mode: C -*-
2
3Copyright 2005-2018 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
19http://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, 2012-03-05, gcc 4.4.6
23   on gcc49.fsffrance.org (Loongson 3A) with GMP 5.0.4
24   configured with ac_cv_func_getrusage=no */
25
26
27#define MPFR_MULHIGH_TAB  \
28 -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
29 0,0,0,0,0,0,0,16,16,16,16,16,16,18,18,18, \
30 18,20,20,20,20,22,22,22,24,32,32,32,32,32,32,32, \
31 32,32,32,32,32,36,36,36,36,32,36,36,36,36,36,36, \
32 36,40,40,40,40,40,44,44,44,44,44,44,48,64,64,64, \
33 64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64, \
34 64,64,64,64,64,64,72,72,72,72,64,64,64,64,64,64, \
35 64,64,64,72,72,72,72,93,93,93,93,93,93,93,93,93, \
36 93,93,93,93,93,93,93,93,93,93,93,93,93,93,96,93, \
37 96,93,96,105,105,105,105,105,105,105,105,105,105,105,105,105, \
38 105,105,108,105,117,117,117,117,117,117,117,117,117,117,117,117, \
39 117,117,117,117,117,117,117,117,129,129,129,129,129,129,129,129, \
40 129,129,129,129,129,129,129,129,129,129,141,141,117,117,117,117, \
41 117,117,129,129,128,129,129,129,189,189,189,189,189,189,189,189, \
42 189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189, \
43 189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189, \
44 189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189, \
45 189,189,189,189,189,189,189,188,189,189,192,189,189,189,189,189, \
46 189,189,189,189,189,189,213,213,213,213,213,213,213,213,213,213, \
47 213,213,213,213,213,213,213,212,213,213,213,213,213,213,213,213, \
48 213,213,213,213,213,213,237,237,237,213,213,237,276,237,276,275, \
49 276,276,276,276,276,276,276,276,276,276,276,276,276,276,276,283, \
50 276,276,276,276,276,276,276,276,276,276,276,276,276,276,276,276, \
51 276,275,276,276,276,276,285,283,283,283,285,283,283,285,285,285, \
52 285,285,378,377,378,378,378,378,378,378,378,378,378,378,378,378, \
53 378,377,378,378,378,378,378,378,378,378,378,378,378,378,378,378, \
54 378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378, \
55 378,378,378,378,378,378,377,378,378,378,378,378,378,378,378,378, \
56 378,378,378,378,378,378,378,378,378,377,378,378,378,378,378,378, \
57 378,378,376,378,378,378,378,378,378,378,378,378,378,378,378,378, \
58 378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378, \
59 378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378, \
60 378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378, \
61 378,378,378,378,504,504,504,503,504,504,504,504,504,503,504,504, \
62 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
63 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
64 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
65 504,504,504,504,504,504,504,504,504,504,504,504,504,504,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,504,504,504,504,504,504,504,504, \
68 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
69 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
70 568,504,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
71 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
72 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
73 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
74 568,568,568,568,568,568,568,568,566,566,568,568,568,568,568,568, \
75 568,632,568,632,632,632,632,632,632,632,632,632,632,632,632,632, \
76 632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632, \
77 632,632,632,632,632,632,632,632,632,632,736,736,736,735,736,736, \
78 736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,735, \
79 736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \
80 736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \
81 736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \
82 736,736,736,736,736,736,736,736,735,736,736,736,736,736,736,736, \
83 736,736,736,736,735,736,736,736,736,736,736,736,736,736,736,736, \
84 736,760,760,760,760,760,760,760,760,760,760,760,760,760,760,760, \
85 760,760,760,760,760,760,760,760,760,760,760,760,760,760,760,760, \
86 760,760,760,760,760,760,832,760,832,832,832,832,832,832,832,832, \
87 832,832,832,831,832,832,832,832,832,832,832,831,832,832,832,832, \
88 832,831,832,832,832,832,831,832,832,832,832,832,832,832,832,832, \
89 832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832, \
90 832,832,831,832,832,832,832,832,832,832,832,832,832,832,832,832, \
91 832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832 \
92
93#define MPFR_SQRHIGH_TAB  \
94 -1,0,0,0,0,0,0,0,6,6,7,7,8,8,9,9, \
95 10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17, \
96 18,18,20,19,20,20,22,21,22,23,24,23,24,25,32,32, \
97 32,32,32,32,32,32,32,32,32,32,32,32,32,32,34,34, \
98 34,34,36,36,36,36,38,38,38,38,40,40,40,40,42,42, \
99 42,44,44,44,44,44,46,45,46,46,48,47,48,48,64,64, \
100 64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64, \
101 64,64,64,64,64,64,64,64,64,64,64,68,68,64,68,72, \
102 68,68,68,68,72,72,72,72,72,72,72,72,72,76,76,98, \
103 98,98,98,99,98,99,98,99,98,99,98,99,98,99,98,99, \
104 98,99,98,99,98,99,98,99,102,99,102,99,102,105,102,105, \
105 102,105,98,99,98,99,98,99,98,99,98,99,98,99,98,99, \
106 102,102,102,105,104,105,104,105,108,105,108,111,110,111,114,111, \
107 114,117,116,117,117,117,120,117,120,123,120,123,122,123,126,129, \
108 126,117,116,117,120,117,120,123,123,123,126,126,126,129,126,129, \
109 122,129,123,123,126,126,126,126,129,126,129,128,129,129,129,129, \
110 132,132,135,132,135,132,135,135,135,134,135,138,141,138,141,141, \
111 141,189,189,189,192,189,192,189,192,189,192,192,192,192,192,192, \
112 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, \
113 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, \
114 192,192,192,192,192,192,189,192,192,192,192,192,192,192,192,192, \
115 192,192,192,192,192,192,192,192,192,192,192,192,192,192,201,201, \
116 201,201,201,201,201,201,201,201,201,201,201,213,213,213,213,213, \
117 213,213,213,213,213,213,213,216,213,213,213,213,213,213,213,213, \
118 213,213,213,213,213,216,213,213,213,225,225,225,225,225,225,224, \
119 225,225,225,237,237,237,237,237,237,237,237,294,294,294,294,294, \
120 294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294, \
121 294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294, \
122 294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294, \
123 294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294, \
124 294,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402, \
125 402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402, \
126 402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402, \
127 402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402, \
128 402,402,402,402,402,402,402,402,402,402,402,402,400,402,402,402, \
129 402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402, \
130 402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402, \
131 402,402,402,402,402,402,402,402,402,402,402,426,426,426,504,504, \
132 504,503,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
133 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
134 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
135 504,504,504,504,504,504,504,504,504,504,503,504,504,504,504,504, \
136 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
137 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
138 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
139 504,504,504,504,504,504,504,504,504,504,504,504,504,504,503,504, \
140 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
141 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
142 503,504,504,504,504,504,504,504,504,504,504,504,504,504,504,503, \
143 504,504,503,504,504,504,504,536,536,536,536,536,536,536,536,536, \
144 536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,535, \
145 536,536,535,536,536,536,536,536,568,568,568,568,568,568,568,568, \
146 568,568,568,568,567,568,568,568,568,568,568,568,568,568,568,567, \
147 568,568,567,568,568,568,568,568,568,568,568,568,568,568,568,568, \
148 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,599, \
149 600,600,568,600,600,568,600,600,600,600,568,600,568,600,504,504, \
150 504,504,504,504,504,503,503,503,504,503,504,504,504,504,502,504, \
151 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
152 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
153 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
154 504,503,503,504,504,504,504,504,504,504,503,504,504,504,504,504, \
155 504,504,504,536,536,536,536,536,536,536,536,536,536,536,536,536, \
156 536,536,536,536,536,536,536,536,536,536,535,536,536,536,536,536, \
157 536,536,536,536,568,568,568,568,552,568,568,568,568,568,568,536 \
158
159#define MPFR_DIVHIGH_TAB  \
160 0,0,2,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,0,0,0,0,0,0,0,0,0,0,0, /*32-47*/ \
163 0,0,0,27,0,28,0,29,30,30,31,32,32,33,34,33, /*48-63*/ \
164 34,35,36,35,36,36,37,37,38,39,39,39,40,40,41,41, /*64-79*/ \
165 50,51,50,50,52,50,50,52,51,52,50,51,50,50,52,50, /*80-95*/ \
166 52,50,52,52,52,52,56,55,56,64,64,64,64,64,64,64, /*96-111*/ \
167 64,64,64,64,64,64,64,64,64,64,64,64,64,64,72,66, /*112-127*/ \
168 66,71,72,71,72,71,72,69,72,72,72,72,72,72,78,80, /*128-143*/ \
169 78,79,78,80,80,80,80,80,80,79,80,80,80,80,88,84, /*144-159*/ \
170 88,88,88,88,88,84,87,85,86,86,88,87,88,88,104,89, /*160-175*/ \
171 104,100,102,104,104,102,100,100,102,103,100,103,128,103,100,104, /*176-191*/ \
172 128,103,100,100,104,103,104,103,128,102,104,128,104,128,128,128, /*192-207*/ \
173 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, /*208-223*/ \
174 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, /*224-239*/ \
175 128,128,127,127,128,128,127,128,128,128,140,128,144,128,144,132, /*240-255*/ \
176 144,135,143,144,144,143,144,143,144,144,142,143,144,144,140,144, /*256-271*/ \
177 138,141,144,144,144,143,144,143,144,144,144,144,144,144,160,160, /*272-287*/ \
178 160,160,148,152,156,157,160,160,160,158,159,160,160,160,160,159, /*288-303*/ \
179 160,160,160,159,159,160,160,159,159,160,160,161,176,160,162,181, /*304-319*/ \
180 182,185,186,184,185,186,185,176,185,186,200,192,186,208,184,208, /*320-335*/ \
181 185,206,200,200,203,200,208,204,204,206,208,208,209,208,208,208, /*336-351*/ \
182 206,208,206,206,200,204,204,208,208,208,208,208,208,208,208,208, /*352-367*/ \
183 207,204,206,207,208,208,208,206,208,208,208,208,208,208,208,206, /*368-383*/ \
184 208,208,208,208,206,208,208,208,256,256,208,256,256,206,256,256, /*384-399*/ \
185 256,256,256,208,255,256,256,256,256,256,256,256,256,256,256,256, /*400-415*/ \
186 256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256, /*416-431*/ \
187 256,256,255,256,256,256,256,256,256,256,256,254,256,255,256,256, /*432-447*/ \
188 256,256,256,256,256,256,255,255,256,256,256,255,254,254,256,253, /*448-463*/ \
189 256,256,256,256,256,256,256,256,256,255,255,256,256,256,256,256, /*464-479*/ \
190 256,256,256,255,256,256,255,256,256,256,256,255,254,256,256,255, /*480-495*/ \
191 256,256,256,256,255,256,255,255,255,256,255,256,256,256,257,264, /*496-511*/ \
192 272,264,269,281,277,281,280,268,269,281,282,282,279,264,288,288, /*512-527*/ \
193 287,280,281,280,288,288,288,282,287,288,287,288,287,288,282,287, /*528-543*/ \
194 281,282,288,288,280,288,288,282,281,288,280,282,287,288,287,288, /*544-559*/ \
195 282,288,288,288,287,285,288,287,288,288,288,288,288,288,289,292, /*560-575*/ \
196 296,293,304,304,304,312,304,306,304,305,303,304,312,304,305,316, /*576-591*/ \
197 315,318,318,312,316,316,318,316,316,320,318,318,320,320,371,370, /*592-607*/ \
198 371,372,373,372,372,373,376,376,378,377,378,378,384,373,377,372, /*608-623*/ \
199 378,372,378,378,378,378,377,384,378,384,378,372,378,378,378,378, /*624-639*/ \
200 372,377,378,378,377,378,378,378,377,371,384,384,378,378,378,378, /*640-655*/ \
201 378,377,378,378,378,378,378,378,378,384,384,384,383,384,417,384, /*656-671*/ \
202 378,378,378,378,377,378,378,401,378,400,378,378,400,408,384,412, /*672-687*/ \
203 384,384,414,408,416,417,411,416,384,414,414,414,416,416,417,414, /*688-703*/ \
204 416,420,400,412,412,412,416,413,416,414,414,416,416,416,412,412, /*704-719*/ \
205 416,416,414,416,416,416,417,416,416,416,416,414,415,416,416,416, /*720-735*/ \
206 414,378,378,377,384,378,378,384,384,384,384,384,384,384,414,384, /*736-751*/ \
207 415,416,416,413,414,416,416,413,414,414,416,416,415,416,416,400, /*752-767*/ \
208 412,408,417,411,412,416,415,416,416,412,416,417,416,414,416,416, /*768-783*/ \
209 416,416,416,416,416,416,416,414,416,416,416,400,415,416,416,401, /*784-799*/ \
210 416,420,412,408,408,412,416,407,408,416,415,412,416,414,416,415, /*800-815*/ \
211 414,412,413,416,412,414,413,416,416,416,418,416,416,416,417,417, /*816-831*/ \
212 419,418,420,419,420,420,426,421,424,426,424,432,426,425,426,426, /*832-847*/ \
213 426,426,432,432,432,432,432,432,432,432,436,432,432,432,433,435, /*848-863*/ \
214 440,438,440,438,436,440,440,438,448,444,444,448,440,444,448,446, /*864-879*/ \
215 444,448,444,443,444,446,446,448,448,449,448,448,448,449,450,468, /*880-895*/ \
216 466,468,460,457,458,460,463,456,460,456,464,467,462,473,512,458, /*896-911*/ \
217 488,468,512,473,512,468,512,510,512,512,510,510,512,508,512,512, /*912-927*/ \
218 512,512,510,512,512,510,512,510,474,511,486,512,512,512,512,512, /*928-943*/ \
219 509,510,510,512,512,512,512,512,512,512,514,512,512,511,508,512, /*944-959*/ \
220 512,510,512,511,512,508,512,512,512,511,512,512,510,512,512,510, /*960-975*/ \
221 512,510,510,512,512,511,512,512,512,512,512,512,512,512,549,512, /*976-991*/ \
222 512,512,545,512,512,512,510,512,512,512,512,512,512,512,510,512, /*992-1007*/ \
223 512,512,551,510,545,512,550,512,552,545,511,557,545,512,544,551 /*1008-1023*/ \
224
225#define MPFR_MUL_THRESHOLD 6 /* limbs */
226#define MPFR_SQR_THRESHOLD 9 /* limbs */
227#define MPFR_DIV_THRESHOLD 6 /* limbs */
228#define MPFR_EXP_2_THRESHOLD 530 /* bits */
229#define MPFR_EXP_THRESHOLD 12546 /* bits */
230#define MPFR_SINCOS_THRESHOLD 22043 /* bits */
231#define MPFR_AI_THRESHOLD1 -17975 /* threshold for negative input of mpfr_ai */
232#define MPFR_AI_THRESHOLD2 1889
233#define MPFR_AI_THRESHOLD3 28004
234/* Tuneup completed successfully, took 13753 seconds */
235