xref: /netbsd-src/external/lgpl3/mpfr/dist/src/x86_64/mparam.h (revision ba125506a622fe649968631a56eba5d42ff57863)
1 /* Various Thresholds of MPFR, not exported.  -*- mode: C -*-
2 
3 Copyright 2005-2023 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 https://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, 2018-02-22, gcc 7.3.0 */
23 /* tomate.loria.fr Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz with GMP 6.1.2,
24    where GMP defines -mtune=haswell */
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,0,0,0, \
29  0,0,0,0,0,0,0,0,0,24,26,28,28,28,28,28, \
30  30,30,32,32,30,32,30,34,36,36,38,36,38,38,44,44, \
31  44,44,44,44,44,48,44,44,48,44,48,52,52,48,56,56, \
32  56,56,56,56,56,56,56,56,60,56,60,64,64,64,60,64, \
33  64,68,64,64,64,64,72,68,68,72,63,72,64,64,68,64, \
34  81,72,72,84,81,81,86,81,81,81,87,87,81,87,87,84, \
35  80,84,87,90,87,86,93,87,92,93,93,96,96,93,96,93, \
36  96,93,104,104,105,105,105,105,104,105,105,108,105,108,104,108, \
37  104,108,111,104,117,108,114,116,116,116,117,114,116,129,117,114, \
38  128,129,129,132,132,134,132,117,141,141,132,140,141,132,138,141, \
39  141,141,141,144,140,141,138,141,144,144,141,144,141,141,140,141, \
40  141,141,140,141,141,141,144,165,144,165,165,164,163,165,164,164, \
41  164,168,165,168,164,164,164,165,165,164,165,168,168,165,164,165, \
42  164,164,164,176,165,177,164,165,168,168,165,165,168,168,168,174, \
43  177,176,177,177,177,189,188,189,177,180,177,180,189,187,188,188, \
44  189,189,189,189,189,188,189,192,220,192,220,220,219,220,220,219, \
45  220,219,220,220,220,219,220,220,219,220,220,219,220,219,220,220, \
46  220,220,220,219,220,220,220,224,219,224,220,234,234,236,236,236, \
47  236,235,235,240,235,236,236,236,236,236,235,236,236,251,235,236, \
48  236,252,252,252,252,252,252,252,236,251,251,256,252,252,252,252, \
49  250,251,252,252,251,252,251,252,284,252,264,280,251,252,252,284, \
50  252,284,284,284,284,284,284,283,284,284,284,284,284,283,284,284, \
51  283,284,284,282,284,284,283,306,306,306,306,306,306,330,330,330, \
52  330,330,330,330,330,330,330,329,330,329,330,329,330,330,330,330, \
53  330,330,330,330,330,330,330,330,330,330,330,330,330,330,330,330, \
54  330,330,330,330,329,330,354,330,330,330,330,330,354,354,354,353, \
55  354,354,354,353,354,330,354,354,330,354,354,330,330,354,330,378, \
56  330,378,378,330,330,330,378,354,378,378,354,378,378,354,378,377, \
57  378,378,377,378,354,354,354,354,354,354,354,378,354,354,378,378, \
58  378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,440, \
59  440,439,439,378,440,440,440,440,440,440,440,439,440,439,440,440, \
60  439,440,440,440,440,440,440,440,440,440,440,440,440,439,440,439, \
61  439,440,439,440,440,440,440,440,440,440,440,440,440,440,440,440, \
62  440,440,440,440,440,440,439,440,440,440,440,440,440,440,439,440, \
63  440,440,440,472,472,439,440,472,471,472,440,439,440,440,440,472, \
64  472,440,472,472,471,472,472,472,472,472,472,472,472,472,472,472, \
65  504,472,471,504,504,504,472,504,472,472,470,472,472,472,472,472, \
66  504,472,472,504,504,504,503,504,504,504,504,503,504,504,503,504, \
67  504,504,504,504,504,503,504,504,504,504,504,503,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,503,503,504,504,504,504,536,536,536, \
70  568,504,568,568,567,568,568,568,567,568,568,567,568,568,568,568, \
71  566,568,568,568,567,568,568,568,567,568,568,568,568,568,568,568, \
72  568,568,568,568,568,568,568,568,567,568,568,568,568,568,568,568, \
73  568,568,568,568,568,567,568,567,568,568,566,568,568,568,568,568, \
74  640,568,640,639,640,640,568,568,640,640,640,640,640,640,640,640, \
75  639,640,640,640,640,640,640,640,639,640,640,639,640,640,640,640, \
76  640,639,640,640,640,640,640,640,640,640,640,638,640,640,640,640, \
77  640,640,640,640,640,640,640,640,640,640,640,640,664,664,664,639, \
78  639,640,664,640,640,639,640,639,640,640,640,639,640,640,640,640, \
79  640,640,640,639,640,688,688,640,640,688,688,640,687,688,664,663, \
80  640,664,688,688,688,688,663,664,736,663,664,664,663,664,712,664, \
81  664,664,688,664,712,712,736,640,688,736,736,736,736,736,736,736, \
82  688,736,736,736,736,736,736,736,735,736,736,736,736,736,736,736, \
83  736,736,736,736,736,736,736,736,735,735,736,736,736,735,736,736, \
84  735,736,736,736,735,736,736,735,735,736,735,736,736,736,735,736, \
85  736,736,736,736,736,736,735,736,735,736,736,736,736,736,736,736, \
86  736,736,735,736,736,736,736,736,736,736,736,736,736,736,735,736, \
87  736,736,736,735,736,736,736,735,736,736,760,736,734,736,736,736, \
88  832,736,784,760,830,760,832,760,736,832,832,832,736,832,832,832, \
89  832,832,832,831,832,832,831,831,832,831,831,832,832,831,832,831, \
90  832,832,832,832,832,831,736,831,832,832,832,832,832,831,831,832 \
91 
92 #define MPFR_SQRHIGH_TAB  \
93  -1,-1,-1,-1,-1,-1,-1,-1,-1,7,8,7,8,8,9,9, \
94  10,10,12,12,12,12,13,13,14,15,15,16,17,17,18,19, \
95  19,19,19,20,21,22,22,23,23,23,23,23,24,24,26,25, \
96  26,27,28,27,29,29,31,29,31,30,33,32,33,33,33,33, \
97  40,38,40,40,40,44,42,40,42,44,44,46,44,42,48,48, \
98  48,48,50,52,50,50,48,50,50,52,52,56,54,56,58,55, \
99  56,58,58,61,60,61,62,64,64,56,66,68,60,62,58,72, \
100  72,76,76,76,76,72,80,80,80,72,76,76,76,76,76,80, \
101  88,80,76,76,80,76,76,80,88,76,79,84,84,88,84,88, \
102  85,88,92,92,84,92,92,90,91,92,96,92,94,92,94,100, \
103  96,92,92,94,85,100,92,96,88,100,96,96,100,91,94,92, \
104  100,94,95,96,98,96,101,100,100,117,100,100,112,100,104,108, \
105  106,108,111,117,117,117,126,123,120,120,120,117,126,126,123,129, \
106  128,128,128,128,126,131,128,129,132,129,132,135,129,137,136,135, \
107  138,135,132,141,136,144,140,144,141,138,150,147,147,147,142,138, \
108  146,138,147,144,144,150,152,144,147,147,147,162,156,164,165,162, \
109  158,152,162,156,161,162,168,156,168,170,168,171,167,170,171,168, \
110  174,175,174,171,159,164,170,170,150,183,176,176,168,168,177,180, \
111  176,170,160,174,176,171,177,171,176,176,177,183,176,174,177,174, \
112  174,177,176,183,176,177,180,177,180,175,176,183,195,180,194,182, \
113  183,189,192,192,189,177,183,189,195,192,189,201,195,195,186,195, \
114  201,201,201,200,200,198,225,219,224,225,204,213,213,225,213,222, \
115  222,219,227,221,222,212,231,222,228,225,224,224,228,227,228,240, \
116  225,219,225,228,228,224,224,227,237,227,228,228,225,225,225,228, \
117  228,237,231,237,231,236,249,237,249,243,240,240,237,249,249,243, \
118  249,237,261,260,261,261,249,260,249,248,261,249,261,261,261,261, \
119  261,261,260,261,264,272,273,273,236,237,273,261,273,237,273,261, \
120  273,273,273,273,264,240,273,261,273,261,273,273,273,273,261,248, \
121  249,267,273,273,261,261,261,261,261,264,273,264,261,273,270,272, \
122  273,272,273,276,273,272,273,267,273,273,272,276,285,285,285,285, \
123  276,276,285,285,283,288,285,296,296,285,285,273,285,294,297,273, \
124  297,297,296,273,309,297,273,285,297,296,285,308,309,272,285,297, \
125  297,276,309,297,297,321,297,296,297,295,285,297,297,297,297,295, \
126  297,297,309,297,309,309,297,296,321,295,307,321,321,312,348,309, \
127  348,348,309,348,309,347,348,348,324,321,321,363,319,347,364,356, \
128  363,348,333,363,361,348,348,364,364,347,348,362,364,364,380,346, \
129  364,348,347,347,364,348,364,362,364,363,362,364,364,364,363,364, \
130  364,371,364,364,364,363,364,364,363,380,363,377,372,380,380,364, \
131  364,379,371,379,380,364,380,380,379,380,379,380,364,384,363,364, \
132  395,396,395,396,380,395,380,378,396,396,378,396,387,396,396,395, \
133  379,410,396,395,396,395,396,395,411,426,412,412,396,425,396,426, \
134  412,409,410,411,410,450,425,426,394,450,462,419,426,410,431,426, \
135  425,426,432,438,432,450,432,426,432,450,438,449,450,450,456,450, \
136  432,456,456,450,450,461,462,456,474,450,462,450,450,450,474,474, \
137  450,474,474,474,474,474,473,474,474,474,462,474,474,474,474,474, \
138  546,474,474,474,474,474,474,474,486,498,498,498,498,474,497,497, \
139  498,498,498,474,498,522,521,522,522,498,522,522,521,520,521,522, \
140  522,521,522,522,522,522,522,522,522,522,522,522,522,522,522,522, \
141  522,522,522,522,522,545,546,546,546,546,546,545,546,544,522,546, \
142  546,546,567,568,520,567,522,545,567,546,568,545,568,568,568,546, \
143  568,545,546,545,546,546,546,568,568,568,568,567,568,568,568,567, \
144  568,568,568,568,568,568,584,568,567,568,600,568,568,599,600,600, \
145  568,600,600,600,600,600,600,567,600,600,568,600,599,600,600,600, \
146  600,600,600,600,600,600,600,600,600,600,600,600,600,600,632,600, \
147  600,600,632,632,616,632,600,600,600,631,600,632,600,616,600,632, \
148  632,600,600,632,632,600,632,600,632,600,600,600,600,600,600,599, \
149  600,599,600,600,600,599,600,631,600,600,600,600,600,600,600,632, \
150  599,640,600,600,600,632,632,600,600,632,632,631,632,632,632,630, \
151  632,632,632,631,640,696,632,632,632,632,630,631,632,631,648,695, \
152  632,695,696,695,632,631,632,647,648,648,648,696,695,696,696,712, \
153  695,664,695,696,695,695,696,695,696,696,696,696,664,695,696,728, \
154  712,727,728,727,696,728,664,663,696,664,664,728,728,664,696,696, \
155  696,696,696,696,696,695,696,696,696,695,696,696,695,695,696,696, \
156  695,696,695,695,695,696,696,696,696,728,726,728,728,728,727,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,0, /*64-79*/ \
164  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*80-95*/ \
165  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*96-111*/ \
166  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*112-127*/ \
167  68,68,0,0,75,69,0,0,71,78,72,73,74,72,78,74, /*128-143*/ \
168  77,84,78,79,78,84,84,77,80,79,80,82,80,80,88,84, /*144-159*/ \
169  84,84,83,93,84,91,86,92,90,88,92,90,90,94,96,95, /*160-175*/ \
170  94,94,96,96,96,96,98,94,100,98,100,96,97,104,106,100, /*176-191*/ \
171  98,98,102,106,102,106,106,112,109,103,112,112,110,104,112,111, /*192-207*/ \
172  109,112,110,118,110,128,112,116,126,112,128,132,128,128,128,128, /*208-223*/ \
173  124,127,128,122,129,128,125,126,127,125,128,127,128,125,136,128, /*224-239*/ \
174  128,128,136,128,136,128,144,132,130,144,135,132,132,136,136,134, /*240-255*/ \
175  142,144,144,134,144,137,136,150,135,143,136,146,140,144,144,142, /*256-271*/ \
176  144,144,144,143,144,149,162,144,144,162,144,144,156,144,167,146, /*272-287*/ \
177  148,150,162,150,155,150,150,158,154,156,162,168,164,160,168,162, /*288-303*/ \
178  156,168,160,164,160,160,158,158,160,159,160,168,166,166,180,164, /*304-319*/ \
179  168,168,184,180,165,174,174,174,172,179,174,174,190,185,186,180, /*320-335*/ \
180  182,184,185,185,186,186,186,192,192,184,187,200,188,184,184,180, /*336-351*/ \
181  196,180,184,186,186,198,192,189,185,186,192,184,191,186,196,186, /*352-367*/ \
182  189,192,190,216,196,189,195,200,192,197,192,192,192,206,204,196, /*368-383*/ \
183  200,214,210,207,216,198,216,210,198,216,214,216,216,208,216,216, /*384-399*/ \
184  208,216,222,224,228,216,216,216,208,216,216,232,228,214,212,218, /*400-415*/ \
185  216,216,218,220,214,216,221,228,220,224,218,224,220,216,224,232, /*416-431*/ \
186  232,220,228,228,264,233,232,228,228,233,232,256,252,228,228,256, /*432-447*/ \
187  232,264,232,264,256,254,256,232,264,255,252,257,258,264,268,276, /*448-463*/ \
188  254,251,264,268,264,248,256,268,254,264,256,256,252,255,258,256, /*464-479*/ \
189  256,257,264,252,264,256,268,272,256,267,256,276,272,287,272,264, /*480-495*/ \
190  256,257,272,276,268,264,264,264,270,272,288,268,269,280,288,288, /*496-511*/ \
191  280,284,282,288,276,288,279,288,288,281,286,288,280,272,272,280, /*512-527*/ \
192  288,288,294,281,276,288,288,288,288,288,280,288,288,287,288,288, /*528-543*/ \
193  284,288,288,287,288,291,288,288,288,288,324,324,287,288,287,312, /*544-559*/ \
194  288,288,288,305,324,292,309,288,312,328,288,311,336,327,330,300, /*560-575*/ \
195  318,330,312,336,327,321,324,336,330,324,335,327,335,336,336,336, /*576-591*/ \
196  336,324,352,335,360,329,344,329,318,329,336,328,336,336,324,335, /*592-607*/ \
197  323,336,336,336,336,328,336,325,360,324,336,328,316,335,336,332, /*608-623*/ \
198  324,360,334,323,328,360,360,384,328,360,330,336,336,336,368,328, /*624-639*/ \
199  335,371,336,335,372,372,335,336,372,336,336,348,330,356,360,370, /*640-655*/ \
200  336,336,384,336,340,368,336,384,346,360,348,372,348,366,376,368, /*656-671*/ \
201  340,347,368,360,384,384,372,348,384,376,368,360,384,344,369,384, /*672-687*/ \
202  372,360,384,360,366,372,368,352,392,360,377,384,383,368,384,384, /*688-703*/ \
203  384,384,372,369,384,383,384,376,382,364,376,384,378,376,384,384, /*704-719*/ \
204  376,382,372,375,384,383,372,384,408,378,384,384,384,384,416,432, /*720-735*/ \
205  384,384,432,419,384,424,384,440,417,440,392,380,408,376,424,378, /*736-751*/ \
206  432,384,440,392,444,400,440,440,384,384,440,384,448,384,448,432, /*752-767*/ \
207  448,432,432,432,416,440,440,400,440,440,438,432,432,432,448,440, /*768-783*/ \
208  444,444,440,436,440,444,420,436,432,432,440,456,420,443,420,420, /*784-799*/ \
209  456,432,431,432,424,432,464,440,432,466,432,448,456,463,460,448, /*800-815*/ \
210  440,420,448,448,444,431,440,440,416,440,433,439,440,456,440,456, /*816-831*/ \
211  434,454,432,432,431,440,440,440,464,428,428,436,440,440,432,440, /*832-847*/ \
212  432,436,436,439,436,440,432,440,438,445,456,440,456,448,456,440, /*848-863*/ \
213  456,464,464,440,456,448,451,440,447,512,440,440,446,446,448,456, /*864-879*/ \
214  448,456,452,460,453,455,456,456,448,455,463,464,480,464,463,464, /*880-895*/ \
215  480,452,480,528,466,468,456,457,480,467,464,468,504,504,460,467, /*896-911*/ \
216  480,512,464,484,466,468,512,472,504,504,504,504,504,528,478,479, /*912-927*/ \
217  504,480,504,520,504,520,504,504,512,512,472,512,512,528,512,512, /*928-943*/ \
218  528,512,502,528,504,536,536,520,528,528,552,536,512,511,528,512, /*944-959*/ \
219  536,560,512,512,488,528,512,536,552,528,512,576,560,560,576,576, /*960-975*/ \
220  504,560,512,560,560,511,512,552,528,512,512,512,568,576,512,512, /*976-991*/ \
221  512,528,528,568,528,512,504,576,576,528,512,576,544,504,576,512, /*992-1007*/ \
222  512,536,528,560,528,540,536,576,568,536,544,536,536,576,527,544 /*1008-1023*/ \
223 
224 #define MPFR_MUL_THRESHOLD 12 /* limbs */
225 #define MPFR_SQR_THRESHOLD 19 /* limbs */
226 #define MPFR_DIV_THRESHOLD 3 /* limbs */
227 #define MPFR_EXP_2_THRESHOLD 894 /* bits */
228 #define MPFR_EXP_THRESHOLD 6522 /* bits */
229 #define MPFR_SINCOS_THRESHOLD 23540 /* bits */
230 #define MPFR_AI_THRESHOLD1 -14260 /* threshold for negative input of mpfr_ai */
231 #define MPFR_AI_THRESHOLD2 1680
232 #define MPFR_AI_THRESHOLD3 24368
233 /* Tuneup completed successfully, took 342 seconds */
234