mparam.h revision 1.1.1.2
1/* Various Thresholds of MPFR, not exported.  -*- mode: C -*-
2
3Copyright 2005-2023 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
19https://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, 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