Upgrade MPFR from 2.4.2-p3 to 3.1.0 on the vendor branch
[dragonfly.git] / contrib / mpfr / src / x86 / mparam.h
1 /* Various Thresholds of MPFR, not exported.  -*- mode: C -*-
2
3 Copyright 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
4
5 This file is part of the GNU MPFR Library.
6
7 The GNU MPFR Library is free software; you can redistribute it and/or modify
8 it under the terms of the GNU Lesser General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or (at your
10 option) any later version.
11
12 The GNU MPFR Library is distributed in the hope that it will be useful, but
13 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
15 License for more details.
16
17 You should have received a copy of the GNU Lesser General Public License
18 along with the GNU MPFR Library; see the file COPYING.LESSER.  If not, see
19 http://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
20 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
21
22 /* Generated by MPFR's tuneup.c, 2011-07-31, gcc 4.4.2 */
23 /* contributed by Jim Cloos <cloos at jhcloos dot com> with GMP 5.0.2 on a
24    Pentium3-M, where __i386, __i686, __pentiumpro are defined */
25
26 #define MPFR_MULHIGH_TAB  \
27  -1,0,-1,-1,-1,-1,-1,-1,-1,7,8,9,10,0,0,0, \
28  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \
29  0,0,0,0,0,0,0,0,0,0,28,30,30,30,30,32, \
30  32,32,34,34,34,32,34,34,34,36,36,36,36,40,40,40, \
31  42,44,48,48,48,48,48,48,48,48,48,52,52,52,52,52, \
32  52,52,56,56,60,56,60,60,60,60,60,64,64,64,64,64, \
33  64,64,64,64,64,64,68,64,64,68,68,68,68,72,72,81, \
34  81,80,81,81,87,87,87,87,87,87,87,87,87,87,93,87, \
35  93,93,93,93,93,93,93,93,99,99,93,93,93,92,93,99, \
36  99,99,99,99,99,99,99,99,105,105,99,105,105,104,105,105, \
37  105,105,111,117,117,117,117,117,117,117,117,117,117,117,117,117, \
38  123,123,123,123,141,141,141,141,141,141,141,141,141,141,141,141, \
39  141,141,141,141,141,141,141,141,141,153,153,153,153,153,153,153, \
40  153,153,153,153,153,165,165,165,153,165,165,165,165,165,165,165, \
41  165,165,165,165,165,177,177,165,177,177,177,177,165,177,177,177, \
42  177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177, \
43  177,177,189,204,189,204,204,204,204,204,204,189,204,189,204,204, \
44  204,204,204,204,204,204,204,204,203,204,204,204,204,204,204,204, \
45  220,204,220,220,220,220,220,220,220,220,220,220,220,220,220,220, \
46  236,220,236,236,236,236,236,235,236,235,236,236,236,236,235,236, \
47  236,236,236,236,236,236,236,236,236,252,252,252,252,252,252,252, \
48  252,252,252,252,252,252,252,252,282,282,282,282,282,282,282,282, \
49  282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282, \
50  282,282,282,282,282,282,282,306,306,282,306,306,306,306,306,306, \
51  306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306, \
52  306,306,306,306,306,330,330,330,329,330,330,330,330,330,330,330, \
53  330,330,330,330,330,330,330,330,330,330,330,330,330,330,354,354, \
54  354,354,354,354,354,354,354,354,354,354,354,354,354,354,354,354, \
55  354,354,354,354,354,354,354,354,354,378,378,378,378,378,378,378, \
56  378,377,378,378,378,378,378,378,378,378,378,378,378,378,378,378, \
57  408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408, \
58  408,408,408,408,408,408,407,408,407,408,408,407,408,408,408,408, \
59  408,408,439,408,440,440,439,440,440,440,440,439,440,440,439,440, \
60  439,440,439,440,439,439,440,440,440,440,439,440,439,440,439,440, \
61  440,440,439,439,440,440,472,440,472,439,440,439,440,440,440,472, \
62  472,472,469,471,471,472,471,471,472,471,470,470,472,472,471,472, \
63  472,504,504,463,471,455,438,501,462,497,501,503,459,471,451,467, \
64  448,501,503,485,504,453,469,470,503,472,496,496,480,467,504,460, \
65  504,488,488,532,535,497,480,470,504,497,504,492,497,498,536,468, \
66  504,510,519,528,500,500,495,504,504,504,504,534,504,504,498,504, \
67  504,511,504,504,504,503,504,563,504,511,504,504,504,504,504,504, \
68  504,504,533,504,536,536,536,533,536,536,536,536,536,536,536,536, \
69  536,536,536,536,536,536,536,536,536,536,536,536,536,536,566,536, \
70  536,536,536,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,592,592, \
72  592,592,592,592,592,592,592,592,640,592,640,592,640,639,640,640, \
73  640,640,640,639,640,639,640,640,640,639,640,640,640,640,640,640, \
74  640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640, \
75  639,640,639,639,688,688,688,639,640,639,640,640,640,687,688,688, \
76  688,687,687,688,688,688,688,688,688,688,688,687,688,736,688,688, \
77  688,687,636,688,688,688,688,688,688,688,688,688,688,688,688,688, \
78  688,688,688,688,688,688,688,688,688,688,687,688,688,688,688,688, \
79  688,688,688,688,688,688,688,688,688,688,688,688,736,736,736,736, \
80  736,736,736,736,736,736,736,736,688,735,736,736,736,736,736,736, \
81  736,736,736,736,736,736,736,736,736,736,736,735,736,735,736,736, \
82  736,735,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \
83  736,736,736,736,736,736,736,735,736,736,736,736,736,736,736,736, \
84  736,736,736,736,784,736,784,784,736,736,736,736,736,736,736,736, \
85  736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \
86  784,736,784,784,784,784,784,784,736,784,736,784,784,784,784,736, \
87  784,783,784,784,784,784,784,784,784,784,784,784,784,784,784,784, \
88  784,784,784,784,784,784,784,784,784,784,784,832,784,784,784,784, \
89  832,784,832,831,832,831,832,832,832,832,832,784,784,784,784,784, \
90  832,784,832,784,832,832,832,832,832,832,832,832,832,832,832,832 \
91   
92 #define MPFR_SQRHIGH_TAB  \
93  -1,0,0,-1,-1,-1,-1,5,6,6,7,7,8,8,9,9, \
94  10,11,12,11,12,13,14,13,14,15,16,15,16,16,17,17, \
95  18,19,19,19,20,20,21,22,23,22,23,24,25,24,25,26, \
96  27,26,27,27,28,28,29,29,30,31,32,31,32,32,33,34, \
97  35,34,35,36,36,38,38,38,39,40,40,40,41,41,41,41, \
98  42,43,44,44,48,48,48,48,48,50,52,50,52,52,54,54, \
99  56,56,58,54,54,54,56,56,56,56,58,58,60,60,62,64, \
100  64,64,62,62,64,64,64,64,64,66,66,68,68,70,68,72, \
101  70,72,74,72,74,72,72,72,74,74,76,72,72,72,74,74, \
102  76,76,76,76,78,78,78,80,80,80,80,80,80,80,87,90, \
103  87,90,90,93,93,90,90,90,90,93,93,93,90,96,96,93, \
104  96,96,96,96,96,93,99,96,102,99,99,99,96,102,102,102, \
105  108,102,105,105,105,108,111,111,108,111,111,111,111,111,111,117, \
106  114,117,114,117,117,120,120,120,120,120,120,120,123,126,126,126, \
107  126,129,129,129,129,129,132,132,132,135,135,135,141,141,141,141, \
108  141,141,148,148,148,152,148,152,152,148,152,156,156,156,156,156, \
109  160,135,141,152,141,141,141,141,141,141,141,141,141,141,141,141, \
110  141,141,152,141,156,152,156,156,160,160,160,152,160,156,156,156, \
111  160,160,156,168,160,168,164,164,168,160,168,176,172,168,168,172, \
112  172,172,176,176,188,176,176,172,188,188,188,188,188,187,188,188, \
113  188,188,188,188,196,188,196,196,196,196,196,204,204,204,204,204, \
114  204,204,204,212,212,212,212,212,212,212,212,220,220,220,220,220, \
115  220,220,220,219,220,220,220,228,220,228,220,220,228,228,220,220, \
116  220,236,236,228,228,236,228,236,228,244,244,228,244,244,236,236, \
117  258,236,258,258,258,258,258,258,258,264,258,264,264,264,264,264, \
118  264,264,264,264,264,258,264,258,264,282,258,264,282,282,282,282, \
119  282,264,264,282,282,276,264,264,282,294,282,282,282,282,282,282, \
120  282,282,282,282,282,282,282,282,282,282,282,282,294,282,282,282, \
121  282,282,282,306,282,282,306,306,282,306,306,306,306,318,306,318, \
122  318,318,318,318,318,318,318,318,318,318,318,330,330,318,318,318, \
123  330,318,318,330,330,318,318,318,318,318,318,330,342,330,330,330, \
124  330,330,330,330,330,330,330,330,330,318,330,318,318,342,342,318, \
125  342,318,318,342,318,330,330,330,330,330,318,330,330,318,330,318, \
126  342,330,342,342,342,342,342,342,342,330,342,342,330,342,342,342, \
127  342,354,342,342,342,342,342,342,342,354,342,342,354,354,354,342, \
128  354,354,354,354,354,354,354,378,366,366,366,366,378,366,366,366, \
129  378,408,366,378,378,378,378,378,378,378,378,378,378,424,424,424, \
130  424,424,424,424,424,408,408,408,408,408,408,408,408,408,408,408, \
131  408,408,424,424,408,424,408,424,424,408,408,424,424,424,424,424, \
132  424,424,424,424,424,424,408,424,424,424,424,424,440,424,440,424, \
133  424,440,424,424,424,424,440,440,440,440,424,424,440,440,424,424, \
134  424,424,440,424,440,456,456,424,440,440,440,440,456,424,424,424, \
135  440,440,456,440,472,456,440,440,472,440,456,440,440,440,456,440, \
136  440,440,456,456,456,472,471,472,456,472,440,472,488,488,455,455, \
137  456,456,488,456,472,488,504,472,456,504,488,488,456,472,472,471, \
138  472,502,472,472,496,488,487,503,456,504,504,503,504,456,456,487, \
139  488,488,504,488,487,504,503,503,504,504,503,503,503,504,502,503, \
140  502,504,519,501,504,551,502,520,520,488,504,479,517,503,488,463, \
141  472,456,504,503,487,519,552,534,485,480,486,502,499,552,504,534, \
142  486,440,504,511,512,533,516,472,536,567,534,494,519,440,542,534, \
143  528,592,468,536,516,485,472,583,550,509,537,471,493,533,526,446, \
144  558,498,499,495,487,571,500,544,471,583,545,530,470,566,520,536, \
145  558,463,504,544,534,494,520,542,522,520,552,520,514,483,434,607, \
146  566,538,536,552,486,607,623,606,520,453,588,476,614,497,472,504, \
147  504,566,552,504,504,504,504,504,504,504,504,504,504,552,520,504, \
148  520,520,520,504,520,520,504,520,536,520,520,536,536,536,536,536, \
149  536,536,536,586,536,536,520,555,504,565,520,552,536,552,552,552, \
150  552,552,552,552,552,552,552,552,552,552,552,552,552,552,568,552, \
151  568,552,568,568,568,568,559,560,568,552,552,568,568,552,568,584, \
152  552,552,552,552,552,552,568,568,552,568,568,552,568,568,552,552, \
153  584,568,568,568,568,568,568,568,568,568,552,568,584,584,568,552, \
154  584,584,584,584,584,584,584,568,568,568,568,616,568,568,616,568, \
155  600,584,600,600,600,632,616,600,584,616,616,632,632,584,632,616, \
156  616,616,616,616,616,632,632,616,616,632,632,616,616,632,616,616 \
157   
158 #define MPFR_DIVHIGH_TAB  \
159  0,1,2,3,4,5,6,7,8,7,10,9,10,11,12,13, \
160  14,15,16,17,18,16,14,16,16,19,19,18,20,19,20,18, \
161  24,19,20,23,24,21,21,23,27,24,28,29,28,28,28,28, \
162  31,31,30,28,34,29,32,32,33,34,35,31,34,38,38,34, \
163  35,36,38,38,38,40,41,43,39,42,43,42,42,43,44,43, \
164  45,48,49,48,51,50,50,48,50,48,51,50,51,52,53,50, \
165  55,51,53,54,56,59,56,59,58,55,57,59,59,63,64,63, \
166  63,64,64,59,64,64,67,64,63,67,67,71,67,67,71,66, \
167  75,75,75,75,73,75,73,75,75,75,73,75,84,73,74,73, \
168  76,76,75,81,76,79,81,84,81,83,84,84,84,84,88,86, \
169  83,88,96,94,96,96,96,96,96,96,96,95,96,96,96,104, \
170  96,100,100,104,104,104,96,96,96,104,100,96,102,96,104,104, \
171  102,104,100,104,112,104,104,112,112,112,104,112,120,112,112,112, \
172  112,120,110,118,118,118,119,112,120,118,120,112,118,127,128,128, \
173  128,128,128,128,128,128,128,128,128,128,128,128,128,136,128,136, \
174  128,128,128,128,128,128,128,128,127,128,128,128,128,128,130,133, \
175  134,136,136,135,136,136,150,136,136,138,148,140,136,143,148,150, \
176  150,150,150,148,150,148,148,150,156,149,168,150,160,161,168,168, \
177  168,168,168,162,168,162,167,168,168,168,168,168,162,174,168,168, \
178  174,174,184,168,168,176,162,168,192,174,168,168,173,174,186,174, \
179  174,168,192,174,168,174,168,168,186,192,192,180,174,176,192,192, \
180  185,192,192,180,192,192,186,192,192,192,192,192,184,192,208,208, \
181  208,208,190,192,190,192,192,191,186,192,192,208,192,192,192,192, \
182  192,192,196,204,204,192,204,192,208,192,191,192,208,208,198,208, \
183  205,220,197,218,222,208,216,199,207,220,206,224,214,204,208,219, \
184  221,209,227,207,221,216,208,236,222,244,225,208,208,212,224,222, \
185  229,230,225,221,222,256,227,240,221,224,240,216,240,231,224,263, \
186  246,232,240,240,240,240,239,240,240,234,234,240,234,238,240,240, \
187  240,240,256,256,240,256,240,240,240,234,256,240,240,256,234,256, \
188  256,239,272,244,256,255,256,240,256,240,256,255,240,255,256,256, \
189  256,254,254,256,244,256,256,256,256,256,256,256,256,253,272,255, \
190  256,256,252,256,256,256,256,256,256,272,256,256,256,256,257,272, \
191  272,272,272,272,264,270,272,288,272,280,282,282,280,280,270,282, \
192  282,282,288,282,288,282,282,300,286,288,300,282,282,288,300,312, \
193  300,298,306,300,304,304,304,300,300,300,316,306,300,288,306,311, \
194  324,312,320,300,306,336,320,300,324,320,336,336,336,328,336,324, \
195  336,336,328,336,322,328,336,336,336,336,312,336,336,336,336,336, \
196  336,336,336,335,336,344,348,336,353,349,336,336,348,348,346,336, \
197  352,320,336,336,336,336,352,336,336,336,336,336,336,336,336,336, \
198  336,336,336,330,336,336,336,336,334,335,336,336,344,344,348,336, \
199  348,336,352,336,336,348,336,348,336,348,352,351,348,336,336,336, \
200  352,352,352,348,352,336,336,384,336,336,352,348,336,348,376,352, \
201  352,372,384,352,384,352,352,352,348,384,348,349,384,351,384,353, \
202  368,352,350,353,378,372,372,372,384,352,384,352,408,384,378,368, \
203  383,384,408,356,371,368,372,371,384,376,384,408,384,407,372,384, \
204  408,369,406,383,377,384,394,382,370,416,408,378,369,372,381,400, \
205  378,408,376,402,417,408,376,384,382,384,384,408,384,384,384,408, \
206  384,416,408,408,416,384,384,384,408,384,384,384,396,408,408,408, \
207  408,408,408,406,408,408,416,416,408,408,408,408,408,416,408,416, \
208  408,405,416,408,408,440,408,416,416,416,440,408,408,408,440,444, \
209  408,440,440,408,415,419,440,440,444,443,436,436,440,447,448,440, \
210  440,416,440,439,440,444,440,444,468,448,440,416,440,416,465,465, \
211  468,436,468,440,472,439,440,468,472,448,465,468,464,439,440,480, \
212  480,472,439,468,440,440,468,440,468,468,444,440,448,480,438,440, \
213  504,439,440,467,480,468,448,465,466,440,468,464,440,472,448,468, \
214  468,469,456,465,448,460,472,472,468,469,465,480,480,468,472,512, \
215  468,464,465,469,480,468,504,466,468,480,480,480,468,512,504,469, \
216  466,466,472,468,480,480,512,469,472,480,480,480,504,477,500,466, \
217  504,468,480,512,504,512,504,480,480,511,512,510,492,511,503,513, \
218  503,502,504,512,504,512,504,512,504,512,504,512,513,503,512,504, \
219  513,504,512,512,510,501,513,503,512,513,498,504,512,510,502,512, \
220  501,500,552,497,516,511,503,513,497,511,502,509,564,509,504,512, \
221  503,504,512,504,504,500,512,512,512,511,512,504,557,504,564,564, \
222  512,564,514,512,516,512,560,564,560,564,564,512,564,564,564,560 \
223   
224 #define MPFR_MUL_THRESHOLD 15 /* limbs */
225 #define MPFR_SQR_THRESHOLD 14 /* limbs */
226 #define MPFR_DIV_THRESHOLD 27 /* limbs */
227 #define MPFR_EXP_2_THRESHOLD 562 /* bits */
228 #define MPFR_EXP_THRESHOLD 9671 /* bits */
229 #define MPFR_SINCOS_THRESHOLD 30620 /* bits */
230 #define MPFR_AI_THRESHOLD1 -28021 /* threshold for negative input of mpfr_ai */
231 #define MPFR_AI_THRESHOLD2 2991
232 #define MPFR_AI_THRESHOLD3 37474
233 /* Tuneup completed successfully, took 6469 seconds */