xref: /netbsd-src/external/lgpl3/mpfr/dist/src/arm/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 /* calva.loria.fr ARMv7 Processor rev 5 (v7l) with gmp-6.1.2,
24    which defines -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a7 */
25 
26 #define MPFR_MULHIGH_TAB  \
27  -1,0,0,0,-1,-1,0,-1,-1,-1,-1,-1,0,-1,-1,0, \
28  0,0,13,14,13,14,17,16,16,17,19,19,20,20,23,23, \
29  24,25,23,24,25,26,25,26,29,28,29,29,31,32,32,34, \
30  29,35,31,32,32,32,32,34,35,38,37,38,40,38,38,40, \
31  40,40,40,40,46,46,46,52,46,46,52,51,52,50,52,51, \
32  52,51,52,52,56,52,58,58,58,58,64,64,58,62,64,64, \
33  64,64,64,63,64,64,68,88,64,68,70,70,80,70,76,80, \
34  80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80, \
35  92,92,92,92,92,92,92,92,92,92,104,104,104,104,100,104, \
36  104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,116, \
37  104,116,116,104,116,116,116,116,116,116,116,116,116,116,116,116, \
38  112,128,116,128,128,128,128,128,135,116,128,127,128,128,127,128, \
39  128,153,124,128,128,135,128,128,128,153,147,153,153,135,128,153, \
40  153,153,153,138,135,135,153,153,153,153,150,153,152,152,150,153, \
41  153,153,152,153,152,153,152,153,153,153,152,152,153,153,170,171, \
42  171,165,170,170,171,170,170,171,168,171,171,171,170,171,170,171, \
43  170,171,171,170,168,189,186,189,170,189,189,189,189,189,189,189, \
44  189,189,188,189,188,189,189,189,189,189,189,189,189,189,189,204, \
45  204,204,204,204,204,204,204,204,204,204,204,204,228,228,228,228, \
46  228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228, \
47  228,228,228,228,228,228,228,228,228,228,228,252,252,252,252,252, \
48  252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252, \
49  252,252,252,251,252,252,252,252,252,252,251,252,252,252,252,252, \
50  252,252,252,252,252,252,252,252,252,252,252,252,276,252,276,276, \
51  276,276,275,252,276,276,276,276,276,276,276,276,316,276,276,316, \
52  316,316,316,316,316,316,316,316,316,315,316,316,316,316,316,316, \
53  316,316,316,315,316,316,316,315,316,316,315,316,316,316,316,316, \
54  316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316, \
55  316,316,316,316,316,364,316,316,364,364,363,364,364,364,364,364, \
56  364,364,364,363,364,364,364,364,364,364,364,364,364,364,364,364, \
57  364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364, \
58  364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364, \
59  364,364,364,364,364,364,364,364,364,364,364,412,412,412,412,412, \
60  412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412, \
61  412,412,412,412,412,412,412,412,412,412,411,412,412,412,411,412, \
62  412,412,412,412,412,412,412,412,412,474,412,474,474,474,474,474, \
63  474,473,474,474,474,474,474,474,473,474,474,474,474,474,473,474, \
64  474,474,474,474,474,474,473,474,474,474,474,474,474,474,474,474, \
65  474,474,473,474,474,474,474,474,473,474,474,474,474,474,474,474, \
66  474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,474, \
67  474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,474, \
68  474,474,504,474,474,504,474,474,474,474,474,504,504,474,474,504, \
69  504,504,504,504,504,504,504,504,504,504,504,504,504,504,536,504, \
70  552,552,504,552,504,552,552,552,552,552,552,552,552,552,552,552, \
71  552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552, \
72  552,552,552,552,552,552,552,632,631,631,632,631,632,632,630,631, \
73  632,632,631,631,632,632,631,632,632,631,632,632,632,632,632,632, \
74  632,631,632,632,632,632,632,632,632,632,632,632,632,631,632,632, \
75  632,632,632,632,632,631,631,632,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,631,632,632,632,632,632,632,632,632,632,632, \
78  631,632,632,631,632,632,632,632,632,630,631,632,632,631,632,632, \
79  632,632,632,631,632,631,632,632,632,632,632,728,728,631,632,728, \
80  728,727,728,728,728,727,728,727,728,727,728,728,728,728,728,728, \
81  728,727,728,728,728,728,728,728,728,727,728,728,728,727,728,728, \
82  728,728,728,728,728,727,728,728,728,727,728,728,728,727,728,728, \
83  728,727,728,728,728,728,728,728,728,727,728,728,728,727,728,728, \
84  728,727,726,727,728,728,728,728,728,727,728,728,728,727,728,728, \
85  728,728,728,728,728,728,728,728,728,727,728,728,728,727,728,728, \
86  728,728,728,728,728,726,728,728,728,824,728,728,727,824,824,728, \
87  824,824,728,824,824,728,824,824,728,824,824,728,824,824,824,824, \
88  824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824, \
89  824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824, \
90  824,824,824,824,824,824,823,824,824,824,824,824,824,823,824,824 \
91 
92 #define MPFR_SQRHIGH_TAB  \
93  -1,0,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, \
94  12,12,11,12,12,14,15,16,16,16,18,16,20,18,20,20, \
95  21,20,20,24,22,24,24,25,26,28,28,25,25,27,27,28, \
96  29,27,28,29,29,28,29,29,31,31,32,33,33,35,35,36, \
97  37,34,35,36,37,36,39,40,41,42,41,40,42,41,42,44, \
98  44,42,44,44,45,44,48,48,49,50,48,52,56,56,52,52, \
99  56,52,56,56,60,56,56,64,64,60,60,64,68,64,68,64, \
100  68,64,68,68,72,72,72,72,68,72,76,74,72,72,72,80, \
101  72,72,72,72,70,72,72,74,74,80,76,80,78,80,80,84, \
102  80,84,84,88,84,88,88,90,88,84,92,80,88,88,88,84, \
103  84,92,88,88,88,88,88,88,88,88,96,96,92,92,112,96, \
104  96,92,92,96,104,104,112,104,104,112,112,112,104,104,104,112, \
105  112,112,112,112,112,112,112,120,120,112,120,112,120,120,120,112, \
106  128,120,120,128,128,112,128,120,120,120,120,128,120,128,128,128, \
107  128,128,128,136,128,128,136,136,136,136,136,136,136,136,144,144, \
108  136,144,144,128,144,144,144,128,144,144,136,144,144,136,136,144, \
109  144,144,144,144,144,144,144,144,144,144,144,144,144,152,144,152, \
110  152,144,144,144,160,160,144,160,160,160,160,160,160,160,160,160, \
111  160,160,160,160,160,177,177,160,160,160,160,160,160,160,177,160, \
112  160,160,160,160,177,177,177,160,177,177,177,201,177,201,177,201, \
113  201,177,201,201,201,201,201,177,201,201,201,201,201,201,201,201, \
114  201,201,201,207,201,201,201,200,201,201,201,201,201,201,201,201, \
115  201,201,213,201,213,213,213,213,213,213,213,213,213,213,218,218, \
116  218,219,213,213,213,213,219,213,225,213,218,219,225,219,237,218, \
117  237,237,237,237,237,237,237,237,237,237,237,237,224,237,249,237, \
118  237,249,237,237,249,243,237,237,243,243,237,249,249,249,249,248, \
119  249,249,249,237,249,249,261,249,249,260,261,248,249,249,261,261, \
120  261,261,261,273,261,249,249,260,261,273,261,261,261,273,284,284, \
121  273,284,261,284,273,261,292,273,284,292,291,292,292,292,292,284, \
122  292,292,292,284,291,292,284,292,292,284,292,284,284,292,292,284, \
123  284,292,284,291,292,308,291,292,292,292,292,284,284,284,284,316, \
124  292,292,316,284,308,292,292,284,300,316,292,292,316,292,300,316, \
125  316,316,291,292,292,292,291,292,316,292,308,308,300,316,316,332, \
126  292,300,316,316,316,316,316,316,332,308,324,316,316,316,332,316, \
127  316,316,332,316,332,316,332,324,316,324,332,332,332,332,332,332, \
128  332,332,332,332,332,332,324,316,332,348,324,332,348,348,348,348, \
129  332,348,332,332,348,348,332,332,348,332,348,364,364,332,348,364, \
130  348,364,348,348,348,364,348,348,364,348,348,364,364,348,364,364, \
131  364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,372, \
132  380,364,380,372,380,364,379,380,364,364,364,380,364,380,402,380, \
133  364,372,364,380,372,380,402,380,402,402,402,402,402,402,426,402, \
134  402,426,402,402,402,438,426,438,426,426,426,438,426,438,426,438, \
135  426,426,426,426,426,426,438,426,426,426,438,426,438,438,438,438, \
136  438,438,438,426,426,438,438,438,426,426,426,438,426,426,426,438, \
137  426,426,438,438,426,438,438,438,438,438,474,450,438,474,474,450, \
138  474,474,474,474,474,474,474,474,474,450,474,474,474,474,450,474, \
139  486,474,498,474,473,474,474,474,474,474,474,474,498,474,474,498, \
140  473,474,474,438,474,474,474,498,450,474,474,498,450,498,498,498, \
141  522,498,498,474,522,498,498,498,498,498,474,522,474,498,474,498, \
142  474,474,474,474,474,522,474,474,474,522,522,522,474,522,522,522, \
143  522,522,498,522,522,498,498,498,498,522,498,498,498,498,498,498, \
144  522,498,498,498,498,498,498,498,498,522,546,522,522,522,522,522, \
145  522,522,522,546,522,522,522,522,522,546,522,522,522,522,522,522, \
146  546,546,522,522,546,546,546,546,546,546,546,522,546,546,546,546, \
147  546,546,546,546,546,546,545,546,546,546,546,546,568,558,546,568, \
148  546,568,568,546,546,546,546,546,546,546,546,568,546,546,546,545, \
149  546,584,584,584,546,584,546,584,568,546,568,584,584,568,584,568, \
150  584,584,600,568,584,600,568,584,568,568,584,600,600,600,600,584, \
151  600,600,616,584,600,616,632,616,584,616,616,632,632,616,632,632, \
152  632,631,632,632,632,632,632,632,632,632,632,632,632,632,632,632, \
153  632,632,632,632,632,632,632,632,632,632,632,632,664,632,632,632, \
154  632,664,664,632,632,664,632,664,664,632,664,664,664,632,664,632, \
155  632,664,631,664,632,664,664,664,664,664,664,664,664,664,664,664, \
156  664,664,664,664,664,664,664,664,696,664,696,696,664,696,696,664 \
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,42,41,44,44,45,45,45, /*64-79*/ \
164  44,44,49,47,47,46,47,46,52,52,52,51,52,52,52,52, /*80-95*/ \
165  53,51,52,59,58,52,59,64,58,59,62,68,62,57,64,59, /*96-111*/ \
166  64,59,68,68,70,68,70,70,68,64,70,70,66,64,66,70, /*112-127*/ \
167  76,67,69,72,70,70,80,80,71,88,76,80,80,76,80,80, /*128-143*/ \
168  80,88,88,90,92,92,92,90,88,84,92,80,88,80,92,92, /*144-159*/ \
169  92,92,92,88,88,90,90,92,92,92,95,94,94,92,92,94, /*160-175*/ \
170  96,104,94,92,92,92,95,102,104,104,103,104,104,104,104,104, /*176-191*/ \
171  104,104,104,100,104,104,104,104,104,104,104,103,104,112,108,112, /*192-207*/ \
172  116,116,116,128,116,128,116,128,116,128,128,128,116,128,128,128, /*208-223*/ \
173  127,128,128,128,128,128,128,136,128,128,136,128,128,140,128,128, /*224-239*/ \
174  128,140,128,136,128,128,128,128,128,139,128,136,136,138,140,140, /*240-255*/ \
175  136,136,140,140,140,140,140,138,144,140,136,140,148,142,139,160, /*256-271*/ \
176  160,140,160,158,160,160,160,148,160,160,160,160,160,160,160,160, /*272-287*/ \
177  160,160,152,160,160,160,176,176,160,160,176,160,160,168,160,184, /*288-303*/ \
178  160,160,184,160,160,176,160,160,176,184,184,184,160,184,184,183, /*304-319*/ \
179  176,184,184,182,184,184,184,184,182,184,184,184,176,208,184,184, /*320-335*/ \
180  192,184,184,184,184,184,184,184,208,184,184,184,208,208,184,184, /*336-351*/ \
181  208,208,184,208,208,208,208,208,208,200,208,184,208,208,208,208, /*352-367*/ \
182  208,208,208,208,208,208,208,208,208,208,208,208,208,204,208,208, /*368-383*/ \
183  208,208,208,207,208,208,206,208,208,208,208,206,208,208,208,208, /*384-399*/ \
184  208,208,206,208,208,208,208,208,208,208,208,208,208,208,224,224, /*400-415*/ \
185  224,224,224,231,232,256,256,224,256,232,232,232,256,256,232,224, /*416-431*/ \
186  232,256,256,224,232,228,224,256,232,256,256,232,256,256,256,256, /*432-447*/ \
187  256,256,256,232,256,230,256,256,256,256,256,256,256,256,256,256, /*448-463*/ \
188  256,248,256,256,256,252,256,256,256,256,255,256,254,256,256,256, /*464-479*/ \
189  256,256,256,255,256,256,256,256,256,256,256,256,256,248,256,256, /*480-495*/ \
190  256,256,256,256,256,256,256,256,256,256,256,256,256,270,280,272, /*496-511*/ \
191  272,280,270,268,280,288,288,288,288,292,280,276,288,270,280,304, /*512-527*/ \
192  288,304,288,280,280,279,304,280,280,280,280,304,296,280,280,282, /*528-543*/ \
193  304,320,279,320,288,304,304,288,320,304,320,316,320,304,320,304, /*544-559*/ \
194  288,304,304,304,320,304,320,320,320,304,304,304,320,318,296,304, /*560-575*/ \
195  320,320,318,320,318,304,304,320,304,304,320,304,304,304,304,320, /*576-591*/ \
196  320,320,320,318,320,320,320,318,352,320,320,320,318,352,320,352, /*592-607*/ \
197  320,320,320,320,320,336,368,336,368,320,320,368,352,352,368,368, /*608-623*/ \
198  366,320,342,368,320,368,352,350,352,352,320,364,352,366,352,366, /*624-639*/ \
199  368,367,366,360,364,368,368,366,368,368,368,368,368,366,368,378, /*640-655*/ \
200  352,376,368,368,352,364,352,368,352,366,366,352,368,384,368,368, /*656-671*/ \
201  364,366,364,367,368,367,368,368,376,368,368,368,368,367,368,376, /*672-687*/ \
202  366,364,366,366,368,366,368,368,368,368,384,416,384,376,416,368, /*688-703*/ \
203  376,378,368,366,368,368,384,368,366,416,368,368,416,376,368,367, /*704-719*/ \
204  368,384,416,416,368,416,416,416,416,416,416,416,384,384,408,416, /*720-735*/ \
205  416,416,376,408,408,416,416,408,408,416,416,416,378,416,416,416, /*736-751*/ \
206  416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,400, /*752-767*/ \
207  416,416,416,416,416,416,416,416,408,416,416,416,416,416,408,416, /*768-783*/ \
208  416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416, /*784-799*/ \
209  448,416,416,416,416,448,416,456,416,416,416,448,416,416,416,416, /*800-815*/ \
210  416,448,416,448,416,416,416,416,416,416,416,448,456,416,448,464, /*816-831*/ \
211  456,448,512,448,464,462,464,464,464,448,448,464,448,448,464,448, /*832-847*/ \
212  448,448,464,480,512,448,448,448,464,512,448,448,448,456,456,456, /*848-863*/ \
213  512,512,464,464,456,464,464,512,512,512,512,464,512,512,512,512, /*864-879*/ \
214  512,512,512,512,512,512,512,512,512,512,512,512,456,512,512,454, /*880-895*/ \
215  512,512,456,511,464,512,504,504,504,512,512,504,512,464,512,512, /*896-911*/ \
216  512,512,512,512,464,512,512,512,512,512,512,464,512,512,512,512, /*912-927*/ \
217  504,512,510,512,512,512,512,512,512,512,512,512,512,512,512,512, /*928-943*/ \
218  512,512,512,512,512,504,504,512,512,512,512,512,504,512,512,512, /*944-959*/ \
219  512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512, /*960-975*/ \
220  512,512,512,512,512,511,512,512,512,512,512,512,504,512,512,511, /*976-991*/ \
221  511,512,512,511,512,512,512,512,512,512,512,512,512,511,512,512, /*992-1007*/ \
222  512,512,512,512,512,512,512,512,512,512,512,512,512,536,544,544 /*1008-1023*/ \
223 
224 #define MPFR_MUL_THRESHOLD 22 /* limbs */
225 #define MPFR_SQR_THRESHOLD 24 /* limbs */
226 #define MPFR_DIV_THRESHOLD 3 /* limbs */
227 #define MPFR_EXP_2_THRESHOLD 277 /* bits */
228 #define MPFR_EXP_THRESHOLD 10666 /* bits */
229 #define MPFR_SINCOS_THRESHOLD 28990 /* bits */
230 #define MPFR_AI_THRESHOLD1 -28503 /* threshold for negative input of mpfr_ai */
231 #define MPFR_AI_THRESHOLD2 2972
232 #define MPFR_AI_THRESHOLD3 44718
233 /* Tuneup completed successfully, took 3001 seconds */
234