xref: /netbsd-src/external/lgpl3/mpfr/dist/src/amd/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 6.3.0 */
23 /* gcc13.fsffrance.org (Dual-Core AMD Opteron(tm) Processor 2212)
24    with gmp 6.1.2, which uses -m64 -mtune=k8 -march=k8. */
25 
26 #define MPFR_MULHIGH_TAB  \
27  -1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,9,11, \
28  12,13,11,15,14,15,15,16,18,18,19,20,18,19,19,20, \
29  22,23,23,24,26,30,28,24,30,32,30,32,32,30,30,32, \
30  32,30,30,32,32,38,32,40,36,36,40,40,38,38,38,38, \
31  38,40,44,44,46,46,44,46,48,46,52,48,56,56,56,56, \
32  56,56,56,60,60,60,64,64,64,64,64,64,64,64,64,64, \
33  72,72,72,72,72,72,72,72,72,72,72,72,80,80,80,80, \
34  80,80,80,80,80,80,80,80,80,93,80,93,93,80,80,93, \
35  80,80,80,80,80,105,93,93,93,93,93,93,93,93,93,108, \
36  93,93,111,93,105,117,105,117,117,117,111,117,117,105,111,105, \
37  108,105,117,117,117,117,117,117,117,117,117,117,117,117,111,117, \
38  117,117,117,117,129,129,117,129,129,129,135,129,129,129,135,135, \
39  135,141,141,129,129,141,132,141,141,141,141,135,141,141,141,141, \
40  141,141,141,141,141,141,141,159,141,153,141,153,153,165,165,165, \
41  159,165,165,165,165,165,165,165,165,165,165,177,189,189,189,189, \
42  189,189,177,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,213,213,189,189,189,189,189,213,213,213,213,213,213,213,213, \
45  213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213, \
46  213,213,213,213,213,213,213,213,213,213,213,213,213,213,225,225, \
47  225,237,225,225,237,237,237,237,237,237,237,237,237,237,237,252, \
48  237,237,252,252,252,252,252,252,252,252,252,252,252,252,252,252, \
49  252,252,284,252,284,284,252,284,284,252,284,284,284,284,284,284, \
50  284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284, \
51  284,284,284,284,284,284,284,284,284,284,284,284,284,300,300,284, \
52  300,300,300,300,300,300,300,300,316,316,315,316,316,315,316,316, \
53  316,316,315,316,316,316,316,316,316,316,316,316,316,316,316,316, \
54  316,314,315,316,316,316,316,314,315,316,316,316,316,316,316,316, \
55  316,316,316,316,316,316,316,316,316,378,378,378,378,378,378,378, \
56  378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378, \
57  378,378,378,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,426, \
59  378,426,378,426,378,378,378,378,426,426,426,426,426,426,426,426, \
60  426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426, \
61  426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426, \
62  426,426,426,426,426,425,426,426,426,426,426,426,426,426,426,425, \
63  426,426,426,426,474,425,474,426,474,474,504,426,474,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,503,504,504, \
67  504,504,504,504,504,504,504,503,504,504,503,504,504,504,504,504, \
68  504,504,568,504,568,504,504,504,568,504,568,568,568,568,568,568, \
69  568,568,568,568,568,568,568,567,568,568,568,568,568,568,568,568, \
70  568,568,568,568,568,568,568,568,568,567,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,567,568,568,568,567,568,568,568,568,568,568,568, \
73  568,568,568,568,568,568,567,568,568,568,568,568,568,568,568,568, \
74  600,568,568,568,600,632,632,568,632,632,632,632,632,600,632,600, \
75  632,632,600,600,632,632,599,600,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,631,632,632,632,632,632,630,631,632,632, \
78  632,632,631,632,632,632,632,632,631,632,631,632,632,632,631,632, \
79  632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,631, \
80  632,632,632,632,632,632,631,632,632,632,632,632,632,736,632,736, \
81  736,736,736,736,736,735,736,735,736,736,736,735,736,736,736,735, \
82  735,736,735,736,736,736,736,736,736,736,736,735,736,736,736,736, \
83  736,736,736,736,735,736,736,736,736,736,736,736,736,736,735,736, \
84  736,736,736,736,736,736,735,736,734,736,736,736,736,736,735,736, \
85  735,736,735,736,736,736,736,736,735,736,736,736,736,736,736,736, \
86  736,736,736,736,736,736,736,735,736,736,736,832,736,736,832,832, \
87  736,831,831,832,832,832,832,832,832,832,830,832,832,832,832,832, \
88  832,832,831,832,832,832,832,832,832,832,832,830,831,832,831,832, \
89  831,832,832,832,832,832,831,832,831,831,831,832,832,832,832,832, \
90  832,832,832,832,831,832,832,832,832,832,832,832,831,832,831,832 \
91 
92 #define MPFR_SQRHIGH_TAB  \
93  -1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,8,9,9,11, \
94  11,11,11,12,13,14,15,15,17,18,18,17,17,18,18,20, \
95  20,18,19,19,20,21,23,23,24,25,23,23,24,25,26,27, \
96  28,27,28,29,28,31,32,31,32,31,32,33,34,34,34,40, \
97  40,40,40,40,40,40,40,40,40,46,46,46,42,46,46,48, \
98  48,48,48,48,48,48,48,48,56,54,56,56,56,48,56,56, \
99  50,50,52,52,62,54,54,56,56,54,58,60,62,62,58,64, \
100  64,62,66,64,64,72,66,68,66,72,72,72,72,72,72,72, \
101  72,72,72,72,80,72,80,72,80,72,80,80,80,80,80,80, \
102  84,80,80,84,80,80,80,80,80,92,92,92,96,92,96,92, \
103  96,92,96,92,96,96,96,96,96,96,96,100,96,96,96,96, \
104  96,96,96,96,100,96,96,112,112,112,96,112,112,112,112,112, \
105  112,112,112,104,112,111,112,112,112,112,112,112,112,112,112,112, \
106  112,112,112,141,112,141,135,135,141,135,128,141,141,141,135,141, \
107  128,141,140,141,141,141,135,135,141,135,141,141,141,141,141,141, \
108  141,141,147,141,141,147,147,141,141,141,159,147,141,147,147,159, \
109  158,159,159,159,159,159,165,159,165,165,159,165,165,159,165,165, \
110  165,171,159,165,165,165,165,165,165,165,171,171,165,171,171,183, \
111  189,189,183,189,189,189,189,189,189,189,189,189,189,189,189,189, \
112  189,189,189,188,189,189,188,171,171,188,189,189,189,189,189,189, \
113  189,189,183,183,183,189,189,183,188,189,189,195,213,189,189,195, \
114  189,189,188,195,189,189,189,195,213,189,189,189,213,213,213,189, \
115  189,213,213,189,189,189,195,189,189,189,195,188,189,213,213,195, \
116  213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213, \
117  213,213,213,212,213,213,237,236,213,237,213,213,213,213,237,237, \
118  237,237,237,237,237,237,237,237,237,237,237,236,237,237,237,237, \
119  237,237,237,237,237,249,237,237,237,237,237,237,237,249,237,237, \
120  237,272,273,236,273,237,273,273,273,285,273,273,249,273,237,285, \
121  273,273,273,273,285,237,285,285,273,285,273,284,285,285,285,285, \
122  285,285,285,285,285,285,285,284,285,285,285,285,285,284,273,284, \
123  285,285,285,284,285,285,285,285,285,285,285,285,285,285,285,285, \
124  285,285,285,285,284,333,333,333,309,333,285,332,333,333,309,333, \
125  333,309,332,333,321,321,333,309,333,333,333,333,333,332,333,332, \
126  333,333,333,333,333,332,333,333,332,333,333,333,333,333,333,333, \
127  333,333,333,333,332,333,333,333,333,333,333,333,333,333,333,333, \
128  333,333,333,333,333,332,333,333,333,332,333,333,333,333,333,333, \
129  333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333, \
130  333,333,333,333,333,420,333,333,333,402,420,420,402,402,420,420, \
131  402,420,420,420,419,402,420,420,420,420,420,420,420,420,420,420, \
132  420,420,420,420,420,420,420,420,420,420,420,419,420,420,420,420, \
133  420,420,419,420,402,420,420,420,420,420,420,420,420,402,401,420, \
134  420,420,402,420,420,402,419,420,420,420,419,420,420,420,420,420, \
135  420,420,420,420,420,420,420,420,420,420,420,420,420,420,420,420, \
136  420,420,420,420,420,418,419,420,419,420,420,420,420,420,420,420, \
137  420,420,420,419,420,420,420,420,420,420,402,420,420,417,420,420, \
138  420,420,420,420,420,420,420,420,419,420,420,420,420,420,420,420, \
139  420,420,438,420,438,438,420,420,420,420,419,420,420,474,420,474, \
140  474,474,474,492,492,474,420,474,492,474,420,492,568,473,420,492, \
141  492,492,568,492,568,568,568,568,492,568,568,568,568,568,568,567, \
142  568,568,568,568,568,568,492,568,568,492,568,568,568,492,568,568, \
143  568,568,568,568,568,492,568,568,568,568,568,568,568,568,567,568, \
144  568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
145  568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \
146  568,568,567,568,568,568,568,568,568,568,567,568,568,568,568,568, \
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,567,568,568,568,568, \
149  568,568,568,568,568,568,567,568,566,567,568,568,568,568,568,568, \
150  568,568,568,568,566,568,568,568,568,568,568,568,568,568,568,568, \
151  568,632,568,632,568,568,568,568,568,568,568,568,568,568,568,568, \
152  632,568,568,568,568,568,568,568,568,568,568,568,568,630,568,568, \
153  630,632,568,568,632,632,631,632,630,568,632,632,632,632,632,632, \
154  632,632,632,632,631,632,632,632,632,632,632,632,664,631,632,664, \
155  631,632,632,632,664,628,632,632,662,632,632,632,632,664,664,632, \
156  632,632,632,664,664,632,632,632,664,631,632,632,664,632,632,632 \
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,22,0,0,0,0,0,26,26,26,27,0,29,30,30, /*32-47*/ \
162  30,30,34,34,0,33,34,0,34,33,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,60,0,0,0,0,0,0,0,0,0,0,0, /*112-127*/ \
167  0,0,0,0,0,0,74,0,0,78,74,78,74,78,78,74, /*128-143*/ \
168  0,0,78,78,78,78,0,78,0,78,0,0,0,0,88,0, /*144-159*/ \
169  0,0,0,0,91,92,91,92,90,88,92,90,92,92,0,112, /*160-175*/ \
170  92,94,96,95,95,112,104,104,112,112,112,112,112,104,112,120, /*176-191*/ \
171  112,112,112,104,112,120,107,112,120,128,112,112,120,120,120,120, /*192-207*/ \
172  112,120,120,120,128,128,128,120,128,128,128,128,128,128,128,128, /*208-223*/ \
173  128,128,120,128,128,128,128,128,128,120,128,128,128,128,128,128, /*224-239*/ \
174  128,128,128,128,136,128,128,128,128,128,148,136,148,128,136,136, /*240-255*/ \
175  136,148,148,148,135,156,148,148,135,156,156,148,156,149,160,160, /*256-271*/ \
176  156,148,156,156,144,160,156,160,148,156,160,156,156,160,156,149, /*272-287*/ \
177  148,160,160,160,156,156,156,156,154,156,156,156,156,156,156,156, /*288-303*/ \
178  156,156,156,160,156,156,157,160,160,160,160,160,160,160,184,184, /*304-319*/ \
179  184,185,184,179,185,184,184,184,184,184,174,174,183,186,184,186, /*320-335*/ \
180  182,184,185,185,186,186,186,184,208,184,192,208,184,184,184,208, /*336-351*/ \
181  184,208,184,208,208,209,192,216,209,208,216,208,210,208,208,224, /*352-367*/ \
182  222,208,208,216,208,224,210,208,222,210,224,224,208,208,210,224, /*368-383*/ \
183  240,232,208,234,206,240,216,208,208,240,240,224,208,208,208,208, /*384-399*/ \
184  208,208,224,224,233,208,224,224,208,216,224,224,208,240,224,222, /*400-415*/ \
185  240,224,224,256,232,216,240,224,234,256,216,256,224,256,256,232, /*416-431*/ \
186  240,240,240,240,255,224,232,256,256,240,256,256,240,256,240,256, /*432-447*/ \
187  240,240,256,256,256,240,256,256,256,256,240,256,256,256,256,256, /*448-463*/ \
188  256,256,256,256,255,256,256,254,256,256,256,256,256,256,256,256, /*464-479*/ \
189  256,256,255,256,256,256,256,256,256,255,256,256,255,256,256,256, /*480-495*/ \
190  256,256,256,256,256,256,256,256,256,256,256,256,256,256,280,272, /*496-511*/ \
191  272,270,280,296,280,276,280,279,280,280,281,280,280,272,272,280, /*512-527*/ \
192  280,272,280,282,312,272,282,312,280,312,280,280,288,280,281,296, /*528-543*/ \
193  312,296,312,312,296,296,312,288,312,312,312,315,316,312,312,312, /*544-559*/ \
194  312,312,312,312,312,318,312,313,312,302,318,312,311,296,312,312, /*560-575*/ \
195  318,312,312,311,312,296,304,311,312,312,312,312,312,312,312,312, /*576-591*/ \
196  313,312,312,312,312,312,312,318,312,312,312,312,312,312,311,312, /*592-607*/ \
197  316,312,320,312,312,312,312,312,312,312,312,312,316,313,313,318, /*608-623*/ \
198  317,316,317,318,320,318,318,318,320,318,348,368,320,336,372,372, /*624-639*/ \
199  372,371,367,368,368,372,371,368,372,336,372,368,372,368,364,372, /*640-655*/ \
200  372,354,384,368,352,368,372,371,348,352,372,366,368,366,372,368, /*656-671*/ \
201  372,365,368,372,368,372,372,371,372,378,369,371,372,372,369,372, /*672-687*/ \
202  372,372,370,378,384,372,370,367,416,384,416,416,371,372,420,424, /*688-703*/ \
203  366,372,372,368,416,420,372,420,432,372,372,416,378,372,416,384, /*704-719*/ \
204  420,416,420,414,416,416,448,416,419,424,425,416,416,425,432,432, /*720-735*/ \
205  432,432,432,432,448,424,448,432,444,432,432,444,432,432,448,448, /*736-751*/ \
206  448,448,448,448,420,416,420,416,448,448,448,420,448,420,432,432, /*752-767*/ \
207  448,426,448,432,416,420,448,432,448,432,414,432,432,420,417,417, /*768-783*/ \
208  420,444,416,444,419,424,420,426,432,420,432,416,480,416,420,424, /*784-799*/ \
209  420,432,419,420,424,424,420,416,425,419,432,448,448,444,448,432, /*800-815*/ \
210  426,420,432,448,448,448,432,448,512,464,444,448,447,448,448,448, /*816-831*/ \
211  432,448,448,464,431,467,448,448,448,444,448,432,448,448,448,504, /*832-847*/ \
212  448,447,432,432,448,512,432,464,448,504,448,448,480,444,448,449, /*848-863*/ \
213  448,512,448,512,480,444,447,448,449,512,480,448,504,480,448,468, /*864-879*/ \
214  448,448,448,467,512,464,463,504,480,504,504,448,480,512,512,504, /*880-895*/ \
215  480,512,503,480,512,480,504,512,512,467,504,512,512,504,512,512, /*896-911*/ \
216  512,512,504,504,462,480,512,504,512,504,504,504,480,464,480,504, /*912-927*/ \
217  504,504,504,512,480,504,504,512,504,512,480,504,512,512,512,512, /*928-943*/ \
218  512,504,480,504,512,504,480,512,512,480,512,480,561,512,504,512, /*944-959*/ \
219  496,504,512,512,504,512,497,512,504,504,504,512,512,512,504,504, /*960-975*/ \
220  504,512,512,512,512,512,512,504,512,512,512,512,504,512,512,512, /*976-991*/ \
221  562,512,504,512,511,512,512,512,512,504,512,512,512,504,512,512, /*992-1007*/ \
222  512,561,512,512,536,512,512,512,512,512,544,559,561,561,563,544 /*1008-1023*/ \
223 
224 #define MPFR_MUL_THRESHOLD 17 /* limbs */
225 #define MPFR_SQR_THRESHOLD 16 /* limbs */
226 #define MPFR_DIV_THRESHOLD 3 /* limbs */
227 #define MPFR_EXP_2_THRESHOLD 585 /* bits */
228 #define MPFR_EXP_THRESHOLD 11179 /* bits */
229 #define MPFR_SINCOS_THRESHOLD 30593 /* bits */
230 #define MPFR_AI_THRESHOLD1 -11898 /* threshold for negative input of mpfr_ai */
231 #define MPFR_AI_THRESHOLD2 1175
232 #define MPFR_AI_THRESHOLD3 18856
233 /* Tuneup completed successfully, took 705 seconds */
234