xref: /dragonfly/contrib/mpfr/src/x86_64/core2/mparam.h (revision dadd6466)
1 /* Various Thresholds of MPFR, not exported.  -*- mode: C -*-
2 
3 Copyright 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 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.3.2 */
23 /* gcc14.fsffrance.org (Intel(R) Xeon(R) CPU X5450 @ 3.00GHz) with gmp 5.0.2 */
24 
25 /* very similar timings were obtained on 2012-01-25 with gcc 4.1.3
26    on gcc70.fsffrance.org (Intel(R) Xeon(TM) CPU 3.20GHz) with gmp 5.0.2,
27    where GMP defines -mtune=nocona, thus we share the parameters */
28 
29 #define MPFR_MULHIGH_TAB  \
30  -1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,9, \
31  10,10,12,12,13,13,13,13,14,16,16,17,18,19,20,24, \
32  24,24,24,24,26,26,26,26,28,28,28,30,30,32,32,28, \
33  28,30,30,32,32,32,32,32,32,32,32,34,36,48,38,36, \
34  40,46,48,48,48,48,48,48,48,48,48,48,48,56,56,56, \
35  56,48,48,48,56,60,60,60,64,64,56,56,56,60,60,60, \
36  64,69,64,64,64,69,69,69,69,69,69,69,64,64,75,81, \
37  81,80,80,80,81,81,81,81,81,81,87,81,87,87,92,93, \
38  92,87,93,92,87,90,93,92,93,92,90,93,92,93,92,93, \
39  92,93,93,93,104,93,99,93,99,104,105,104,105,104,105,104, \
40  111,104,111,110,104,117,117,117,117,117,117,104,105,141,141,140, \
41  141,141,141,141,141,141,141,141,141,141,141,141,141,140,141,141, \
42  141,141,141,141,141,141,141,141,140,141,141,141,141,138,140,141, \
43  141,141,140,141,141,141,141,141,141,141,141,141,165,141,153,141, \
44  153,165,188,188,188,188,188,188,188,188,188,188,188,188,188,188, \
45  188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188, \
46  188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188, \
47  188,188,204,204,188,203,188,188,204,204,188,188,216,220,220,220, \
48  220,204,204,220,220,220,220,220,220,220,220,220,220,220,220,220, \
49  220,220,220,235,236,219,220,220,236,236,236,236,236,236,236,236, \
50  236,236,236,236,236,236,236,282,282,282,282,282,282,282,282,282, \
51  282,282,282,282,282,282,282,282,282,281,282,280,282,282,282,282, \
52  282,282,282,282,282,282,282,281,281,282,281,281,282,282,282,282, \
53  282,282,282,282,282,282,282,282,282,282,282,281,282,280,281,282, \
54  282,282,282,282,306,282,306,330,330,306,281,330,282,282,330,330, \
55  330,282,330,329,330,330,330,330,330,330,330,330,330,330,330,330, \
56  330,330,330,330,330,330,330,330,330,330,354,354,330,330,330,329, \
57  330,330,330,330,330,330,330,329,330,330,354,354,330,330,330,330, \
58  330,330,378,330,354,330,354,354,354,354,354,377,378,354,354,354, \
59  378,354,378,378,354,353,354,378,354,378,378,377,378,378,378,408, \
60  408,408,378,408,408,408,378,416,408,408,377,378,378,408,408,407, \
61  408,408,408,408,408,408,408,440,408,440,440,440,439,440,440,440, \
62  432,439,440,440,440,439,440,440,440,439,440,439,440,439,440,440, \
63  440,440,440,439,440,440,440,440,440,439,440,440,440,440,439,440, \
64  440,440,440,439,471,440,440,440,440,440,440,439,440,440,440,440, \
65  440,440,440,440,440,440,472,440,440,439,440,440,440,439,440,440, \
66  440,472,439,440,440,440,472,440,471,472,472,472,472,472,472,471, \
67  471,472,471,472,472,472,504,504,504,504,504,504,504,504,472,471, \
68  472,472,504,472,471,472,504,504,504,504,504,503,504,504,504,504, \
69  504,503,504,504,504,504,503,504,504,504,504,504,503,504,504,504, \
70  504,504,503,504,504,504,504,504,504,504,504,504,504,504,504,504, \
71  504,504,504,504,544,544,544,544,544,544,544,544,544,544,544,544, \
72  542,543,544,544,544,544,544,544,544,544,544,544,544,544,544,544, \
73  543,544,544,544,544,544,544,544,544,544,544,544,544,544,544,544, \
74  544,592,544,544,592,592,544,592,592,591,592,592,632,631,592,592, \
75  592,592,592,592,592,640,640,640,640,640,616,616,616,616,616,616, \
76  632,592,616,616,632,630,631,632,632,632,616,632,640,632,632,640, \
77  640,640,640,640,640,640,639,640,632,632,639,640,640,640,632,632, \
78  640,639,640,640,632,640,640,640,640,640,640,640,640,640,640,640, \
79  640,640,640,640,640,640,632,640,640,640,640,640,640,640,640,640, \
80  640,640,640,640,640,640,640,640,640,640,632,688,640,640,632,632, \
81  640,640,640,640,639,640,640,640,688,632,687,640,712,688,640,640, \
82  640,640,640,712,640,640,640,712,736,640,640,640,711,712,736,736, \
83  640,640,688,712,712,712,712,712,728,736,728,728,736,736,736,736, \
84  736,736,736,736,734,736,728,736,736,736,728,736,736,736,736,736, \
85  736,736,736,736,735,712,736,736,736,712,736,736,736,736,736,736, \
86  736,736,736,712,736,736,712,736,728,712,736,712,736,736,736,736, \
87  728,712,736,736,735,736,736,736,735,736,736,736,736,735,736,736, \
88  736,736,736,736,736,736,736,736,736,736,736,736,736,734,736,736, \
89  736,736,735,736,736,736,735,736,736,736,736,736,736,736,736,736, \
90  736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \
91  736,736,736,736,736,736,736,736,736,736,736,736,736,736,735,736, \
92  736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \
93  824,824,832,832,832,832,824,832,832,832,832,832,824,831,832,832 \
94 
95 #define MPFR_SQRHIGH_TAB  \
96  -1,0,0,0,0,0,0,5,6,6,7,8,8,8,10,9, \
97  10,11,11,11,12,13,13,13,14,16,16,17,17,17,17,17, \
98  18,19,20,21,20,23,24,21,26,23,23,24,24,24,25,28, \
99  26,28,28,34,32,34,32,32,34,34,32,34,34,34,34,34, \
100  34,36,40,38,38,36,42,42,40,40,40,40,42,42,42,42, \
101  46,42,48,48,48,46,52,52,52,52,52,52,56,56,56,56, \
102  64,56,64,64,64,64,68,56,64,64,64,68,63,64,64,68, \
103  68,68,68,68,64,68,68,68,72,64,68,68,68,64,67,68, \
104  68,68,68,68,68,68,72,84,80,72,72,72,72,72,76,76, \
105  76,76,80,80,76,76,80,84,80,80,80,84,84,84,84,84, \
106  84,84,84,96,84,84,92,92,96,96,96,99,92,92,92,95, \
107  96,105,111,105,104,105,104,104,105,105,105,105,104,105,104,105, \
108  99,114,105,116,117,117,117,123,117,123,116,123,116,111,123,123, \
109  123,123,123,123,123,117,117,117,123,123,123,117,123,117,123,123, \
110  123,123,123,123,117,123,123,123,156,123,123,141,123,123,135,135, \
111  123,148,123,141,141,156,156,129,156,163,156,164,156,156,156,135, \
112  156,141,155,164,156,156,164,148,148,147,141,164,164,164,164,156, \
113  164,164,164,164,163,164,164,164,164,164,164,164,164,164,164,164, \
114  164,156,164,164,156,164,164,164,188,163,164,164,164,164,187,188, \
115  180,164,204,204,164,188,196,188,188,204,196,180,196,204,188,196, \
116  220,187,204,220,204,180,220,220,204,204,196,204,220,204,220,220, \
117  220,220,204,220,220,220,220,220,220,220,220,220,220,220,220,220, \
118  252,220,220,220,220,220,252,220,252,220,220,220,220,252,252,252, \
119  252,252,252,252,252,252,252,252,252,252,252,252,267,268,252,252, \
120  252,250,252,252,252,268,251,252,268,252,268,268,268,252,252,252, \
121  265,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268, \
122  268,267,268,268,268,267,268,268,268,267,268,268,268,268,268,268, \
123  268,268,252,268,252,268,268,268,268,268,268,265,268,268,268,268, \
124  268,268,268,268,268,268,268,268,268,268,268,268,265,268,268,268, \
125  252,268,268,266,268,268,268,328,265,282,312,268,268,268,268,268, \
126  268,268,268,268,268,268,268,311,310,282,282,294,312,282,281,294, \
127  282,268,312,312,268,311,312,268,268,312,268,312,312,268,312,327, \
128  268,312,328,268,328,268,328,328,328,312,328,312,327,328,328,312, \
129  327,328,328,327,325,327,327,359,328,328,327,328,328,328,328,328, \
130  311,328,360,360,360,360,360,360,360,360,360,360,328,360,360,360, \
131  328,312,328,360,327,328,328,359,360,328,359,328,312,360,360,327, \
132  312,408,328,440,328,328,328,328,328,392,328,328,408,408,408,392, \
133  407,408,408,408,392,407,408,408,407,407,408,408,408,392,408,408, \
134  407,408,392,408,408,440,406,408,408,408,440,408,408,408,440,440, \
135  440,440,440,392,440,392,440,440,440,440,440,440,440,440,440,440, \
136  408,392,440,440,440,438,439,440,440,440,440,440,440,439,440,439, \
137  440,440,440,504,408,504,408,408,408,472,408,408,407,408,440,439, \
138  439,440,440,440,440,440,440,440,437,440,440,440,439,504,503,504, \
139  504,503,504,504,440,502,504,503,503,504,504,503,504,504,504,504, \
140  504,503,504,504,499,503,502,504,504,536,502,504,504,504,536,504, \
141  504,504,503,504,504,503,536,504,502,536,503,504,504,504,536,536, \
142  504,504,504,536,536,535,504,536,535,504,504,504,504,504,504,536, \
143  536,536,503,536,504,503,536,536,504,535,536,536,504,535,520,536, \
144  504,504,504,536,535,536,520,536,535,520,536,535,535,536,536,535, \
145  504,536,536,535,536,535,535,536,536,536,536,536,535,504,536,536, \
146  536,536,536,536,536,536,536,536,536,535,536,536,536,535,504,536, \
147  536,536,536,536,504,535,536,536,536,535,535,536,536,536,536,536, \
148  536,535,536,504,536,535,536,536,536,536,536,504,504,536,504,535, \
149  536,504,536,535,536,504,504,504,536,536,504,536,504,536,504,536, \
150  536,504,535,536,632,535,536,536,535,536,536,536,536,536,632,632, \
151  536,631,536,536,535,536,536,536,536,535,536,536,536,631,632,632, \
152  536,536,630,535,536,536,600,632,631,600,536,536,536,536,535,632, \
153  536,598,536,600,536,631,600,568,632,568,568,568,568,568,664,566, \
154  568,568,632,632,664,568,664,663,632,629,632,535,600,536,536,536, \
155  632,536,536,599,536,630,536,632,631,632,600,600,600,664,600,664, \
156  664,632,600,599,664,600,662,663,664,599,598,616,632,625,632,630, \
157  628,627,630,631,632,663,632,631,632,630,632,631,632,626,632,632, \
158  632,663,631,631,632,632,632,664,632,632,600,632,632,600,632,632, \
159  600,600,632,632,632,662,663,663,663,600,664,632,664,663,664,632 \
160 
161 #define MPFR_DIVHIGH_TAB  \
162  0,1,2,3,4,5,6,7,8,9,10,11,12,13,12,13, \
163  14,15,16,13,14,14,14,15,15,17,17,17,19,19,19,19, \
164  23,23,19,25,23,25,23,25,25,22,26,28,25,28,25,25, \
165  28,27,31,27,29,28,33,31,32,33,31,32,33,33,35,35, \
166  35,39,37,43,39,37,39,41,39,40,39,40,41,45,41,47, \
167  45,45,47,43,44,45,50,54,49,46,53,47,55,56,52,55, \
168  52,60,60,52,60,64,62,55,55,62,55,58,56,64,61,59, \
169  63,63,64,59,60,60,63,64,64,63,64,64,68,68,66,66, \
170  68,69,71,71,70,71,71,72,78,74,74,71,72,78,78,74, \
171  76,77,78,79,78,80,79,79,84,83,80,80,82,95,96,83, \
172  92,92,88,91,92,84,95,95,92,96,94,91,94,92,96,94, \
173  96,96,96,104,94,94,112,112,104,112,112,112,96,112,112,112, \
174  112,112,110,104,112,112,112,111,112,108,110,120,112,112,112,112, \
175  112,112,120,112,120,120,112,120,120,120,120,120,128,120,120,116, \
176  128,128,124,128,120,128,128,120,120,120,128,120,128,120,124,128, \
177  128,128,128,127,128,128,126,128,128,128,128,127,136,128,138,137, \
178  137,135,138,138,138,137,135,138,150,150,138,147,150,138,150,150, \
179  150,150,160,160,156,150,156,148,150,158,162,160,161,160,150,160, \
180  160,160,168,156,156,160,168,173,162,156,180,160,160,157,168,160, \
181  160,160,162,168,168,160,184,162,184,162,160,160,174,160,184,180, \
182  184,184,180,184,184,186,180,184,184,184,184,184,186,188,188,192, \
183  185,184,184,186,192,192,192,186,182,192,192,185,184,184,192,208, \
184  192,184,184,180,192,184,192,186,186,184,192,186,186,191,186,185, \
185  192,216,192,192,208,192,191,192,192,192,204,192,207,192,216,208, \
186  208,216,216,197,196,216,216,208,216,222,216,222,208,222,208,222, \
187  224,208,209,216,216,209,224,207,216,222,224,224,208,223,224,224, \
188  224,216,222,222,224,224,224,216,224,216,222,221,222,224,224,224, \
189  224,224,224,232,224,222,224,232,225,233,224,240,224,232,256,240, \
190  256,256,240,255,240,256,256,240,232,240,232,232,240,232,256,256, \
191  256,256,256,256,256,256,255,256,256,240,256,240,256,240,254,252, \
192  256,256,256,256,256,256,256,256,254,256,256,282,276,256,254,256, \
193  256,255,282,256,255,256,255,256,255,288,256,264,264,256,274,276, \
194  276,269,273,273,282,269,276,276,276,276,273,282,276,282,276,277, \
195  280,312,282,281,288,282,276,282,276,276,288,312,276,288,300,276, \
196  304,276,288,300,304,312,312,312,312,312,306,312,312,312,316,300, \
197  324,312,320,320,300,312,312,312,312,324,312,330,300,320,312,312, \
198  316,318,324,324,318,312,312,324,336,336,324,312,312,336,324,320, \
199  312,336,312,324,336,336,336,368,324,348,312,336,368,312,312,320, \
200  368,372,368,312,324,376,372,312,368,376,376,372,370,372,318,376, \
201  320,372,372,368,372,324,376,376,376,376,368,372,376,376,376,376, \
202  372,372,376,376,376,372,384,376,372,368,384,376,376,370,376,376, \
203  376,371,372,368,384,336,370,370,376,372,376,376,368,376,376,372, \
204  376,370,376,368,376,372,376,376,368,376,376,368,368,376,368,368, \
205  370,370,372,368,372,376,376,376,376,368,370,368,368,372,376,376, \
206  372,376,368,376,376,376,372,376,376,372,376,376,368,376,372,376, \
207  372,368,376,370,376,372,376,372,376,376,372,370,376,376,370,372, \
208  372,373,376,376,384,384,384,376,376,376,376,384,376,376,384,384, \
209  384,416,384,384,408,384,416,384,384,384,384,408,416,416,416,432, \
210  408,408,416,408,408,416,408,416,416,416,416,416,416,408,407,440, \
211  432,408,416,408,416,440,416,408,416,416,432,416,416,440,416,416, \
212  416,440,432,440,408,448,448,408,408,432,440,432,448,416,416,416, \
213  440,432,432,416,448,432,465,440,432,440,480,448,416,448,432,432, \
214  480,432,448,440,466,448,432,440,432,440,440,440,480,430,448,448, \
215  448,439,440,432,438,447,448,440,440,440,448,448,480,432,448,448, \
216  448,448,448,447,448,448,448,447,448,448,440,465,448,467,448,448, \
217  448,448,464,464,448,448,466,480,480,480,468,480,448,464,480,464, \
218  466,466,464,479,480,480,512,480,540,480,496,480,552,512,480,479, \
219  504,480,552,552,512,480,504,552,564,512,480,480,504,561,564,564, \
220  512,552,560,564,564,480,564,480,552,480,564,564,564,564,536,564, \
221  540,564,552,564,564,564,564,552,564,552,564,480,564,552,552,564, \
222  512,564,546,564,564,564,512,552,552,559,560,561,564,564,560,560, \
223  552,561,564,564,560,564,561,564,564,564,564,564,564,564,564,560, \
224  561,560,564,564,560,564,564,552,564,564,564,552,564,564,564,564, \
225  564,563,564,564,564,564,560,564,564,564,564,552,564,564,560,564 \
226 
227 #define MPFR_MUL_THRESHOLD 7 /* limbs */
228 #define MPFR_SQR_THRESHOLD 12 /* limbs */
229 #define MPFR_DIV_THRESHOLD 20 /* limbs */
230 #define MPFR_EXP_2_THRESHOLD 1024 /* bits */
231 #define MPFR_EXP_THRESHOLD 9670 /* bits */
232 #define MPFR_SINCOS_THRESHOLD 23808 /* bits */
233 #define MPFR_AI_THRESHOLD1 -13250 /* threshold for negative input of mpfr_ai */
234 #define MPFR_AI_THRESHOLD2 1430
235 #define MPFR_AI_THRESHOLD3 21190
236 /* Tuneup completed successfully, took 770 seconds */
237