1 /* Various Thresholds of MPFR, not exported. -*- mode: C -*- 2 3 Copyright 2005-2018 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, 2012-03-05, gcc 4.4.6 23 on gcc49.fsffrance.org (Loongson 3A) with GMP 5.0.4 24 configured with ac_cv_func_getrusage=no */ 25 26 27 #define MPFR_MULHIGH_TAB \ 28 -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \ 29 0,0,0,0,0,0,0,16,16,16,16,16,16,18,18,18, \ 30 18,20,20,20,20,22,22,22,24,32,32,32,32,32,32,32, \ 31 32,32,32,32,32,36,36,36,36,32,36,36,36,36,36,36, \ 32 36,40,40,40,40,40,44,44,44,44,44,44,48,64,64,64, \ 33 64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64, \ 34 64,64,64,64,64,64,72,72,72,72,64,64,64,64,64,64, \ 35 64,64,64,72,72,72,72,93,93,93,93,93,93,93,93,93, \ 36 93,93,93,93,93,93,93,93,93,93,93,93,93,93,96,93, \ 37 96,93,96,105,105,105,105,105,105,105,105,105,105,105,105,105, \ 38 105,105,108,105,117,117,117,117,117,117,117,117,117,117,117,117, \ 39 117,117,117,117,117,117,117,117,129,129,129,129,129,129,129,129, \ 40 129,129,129,129,129,129,129,129,129,129,141,141,117,117,117,117, \ 41 117,117,129,129,128,129,129,129,189,189,189,189,189,189,189,189, \ 42 189,189,189,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,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189, \ 45 189,189,189,189,189,189,189,188,189,189,192,189,189,189,189,189, \ 46 189,189,189,189,189,189,213,213,213,213,213,213,213,213,213,213, \ 47 213,213,213,213,213,213,213,212,213,213,213,213,213,213,213,213, \ 48 213,213,213,213,213,213,237,237,237,213,213,237,276,237,276,275, \ 49 276,276,276,276,276,276,276,276,276,276,276,276,276,276,276,283, \ 50 276,276,276,276,276,276,276,276,276,276,276,276,276,276,276,276, \ 51 276,275,276,276,276,276,285,283,283,283,285,283,283,285,285,285, \ 52 285,285,378,377,378,378,378,378,378,378,378,378,378,378,378,378, \ 53 378,377,378,378,378,378,378,378,378,378,378,378,378,378,378,378, \ 54 378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378, \ 55 378,378,378,378,378,378,377,378,378,378,378,378,378,378,378,378, \ 56 378,378,378,378,378,378,378,378,378,377,378,378,378,378,378,378, \ 57 378,378,376,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,378, \ 59 378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378, \ 60 378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378, \ 61 378,378,378,378,504,504,504,503,504,504,504,504,504,503,504,504, \ 62 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \ 63 504,504,504,504,504,504,504,504,504,504,504,504,504,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,504,504,504, \ 67 504,504,504,504,504,504,504,504,504,504,504,504,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,504,504,504,504,504,504,504,504,504, \ 70 568,504,568,568,568,568,568,568,568,568,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,568,568,568,568,568,568,568,568,568,568,568,568, \ 73 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \ 74 568,568,568,568,568,568,568,568,566,566,568,568,568,568,568,568, \ 75 568,632,568,632,632,632,632,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,632,632,632,632,632,736,736,736,735,736,736, \ 78 736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,735, \ 79 736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \ 80 736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \ 81 736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \ 82 736,736,736,736,736,736,736,736,735,736,736,736,736,736,736,736, \ 83 736,736,736,736,735,736,736,736,736,736,736,736,736,736,736,736, \ 84 736,760,760,760,760,760,760,760,760,760,760,760,760,760,760,760, \ 85 760,760,760,760,760,760,760,760,760,760,760,760,760,760,760,760, \ 86 760,760,760,760,760,760,832,760,832,832,832,832,832,832,832,832, \ 87 832,832,832,831,832,832,832,832,832,832,832,831,832,832,832,832, \ 88 832,831,832,832,832,832,831,832,832,832,832,832,832,832,832,832, \ 89 832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832, \ 90 832,832,831,832,832,832,832,832,832,832,832,832,832,832,832,832, \ 91 832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832 \ 92 93 #define MPFR_SQRHIGH_TAB \ 94 -1,0,0,0,0,0,0,0,6,6,7,7,8,8,9,9, \ 95 10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17, \ 96 18,18,20,19,20,20,22,21,22,23,24,23,24,25,32,32, \ 97 32,32,32,32,32,32,32,32,32,32,32,32,32,32,34,34, \ 98 34,34,36,36,36,36,38,38,38,38,40,40,40,40,42,42, \ 99 42,44,44,44,44,44,46,45,46,46,48,47,48,48,64,64, \ 100 64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64, \ 101 64,64,64,64,64,64,64,64,64,64,64,68,68,64,68,72, \ 102 68,68,68,68,72,72,72,72,72,72,72,72,72,76,76,98, \ 103 98,98,98,99,98,99,98,99,98,99,98,99,98,99,98,99, \ 104 98,99,98,99,98,99,98,99,102,99,102,99,102,105,102,105, \ 105 102,105,98,99,98,99,98,99,98,99,98,99,98,99,98,99, \ 106 102,102,102,105,104,105,104,105,108,105,108,111,110,111,114,111, \ 107 114,117,116,117,117,117,120,117,120,123,120,123,122,123,126,129, \ 108 126,117,116,117,120,117,120,123,123,123,126,126,126,129,126,129, \ 109 122,129,123,123,126,126,126,126,129,126,129,128,129,129,129,129, \ 110 132,132,135,132,135,132,135,135,135,134,135,138,141,138,141,141, \ 111 141,189,189,189,192,189,192,189,192,189,192,192,192,192,192,192, \ 112 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, \ 113 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, \ 114 192,192,192,192,192,192,189,192,192,192,192,192,192,192,192,192, \ 115 192,192,192,192,192,192,192,192,192,192,192,192,192,192,201,201, \ 116 201,201,201,201,201,201,201,201,201,201,201,213,213,213,213,213, \ 117 213,213,213,213,213,213,213,216,213,213,213,213,213,213,213,213, \ 118 213,213,213,213,213,216,213,213,213,225,225,225,225,225,225,224, \ 119 225,225,225,237,237,237,237,237,237,237,237,294,294,294,294,294, \ 120 294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294, \ 121 294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294, \ 122 294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294, \ 123 294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294, \ 124 294,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402, \ 125 402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402, \ 126 402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402, \ 127 402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402, \ 128 402,402,402,402,402,402,402,402,402,402,402,402,400,402,402,402, \ 129 402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402, \ 130 402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402, \ 131 402,402,402,402,402,402,402,402,402,402,402,426,426,426,504,504, \ 132 504,503,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \ 133 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \ 134 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \ 135 504,504,504,504,504,504,504,504,504,504,503,504,504,504,504,504, \ 136 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \ 137 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \ 138 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \ 139 504,504,504,504,504,504,504,504,504,504,504,504,504,504,503,504, \ 140 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \ 141 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \ 142 503,504,504,504,504,504,504,504,504,504,504,504,504,504,504,503, \ 143 504,504,503,504,504,504,504,536,536,536,536,536,536,536,536,536, \ 144 536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,535, \ 145 536,536,535,536,536,536,536,536,568,568,568,568,568,568,568,568, \ 146 568,568,568,568,567,568,568,568,568,568,568,568,568,568,568,567, \ 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,568,568,568,568,599, \ 149 600,600,568,600,600,568,600,600,600,600,568,600,568,600,504,504, \ 150 504,504,504,504,504,503,503,503,504,503,504,504,504,504,502,504, \ 151 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \ 152 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \ 153 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \ 154 504,503,503,504,504,504,504,504,504,504,503,504,504,504,504,504, \ 155 504,504,504,536,536,536,536,536,536,536,536,536,536,536,536,536, \ 156 536,536,536,536,536,536,536,536,536,536,535,536,536,536,536,536, \ 157 536,536,536,536,568,568,568,568,552,568,568,568,568,568,568,536 \ 158 159 #define MPFR_DIVHIGH_TAB \ 160 0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0, /*0-15*/ \ 161 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*16-31*/ \ 162 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*32-47*/ \ 163 0,0,0,27,0,28,0,29,30,30,31,32,32,33,34,33, /*48-63*/ \ 164 34,35,36,35,36,36,37,37,38,39,39,39,40,40,41,41, /*64-79*/ \ 165 50,51,50,50,52,50,50,52,51,52,50,51,50,50,52,50, /*80-95*/ \ 166 52,50,52,52,52,52,56,55,56,64,64,64,64,64,64,64, /*96-111*/ \ 167 64,64,64,64,64,64,64,64,64,64,64,64,64,64,72,66, /*112-127*/ \ 168 66,71,72,71,72,71,72,69,72,72,72,72,72,72,78,80, /*128-143*/ \ 169 78,79,78,80,80,80,80,80,80,79,80,80,80,80,88,84, /*144-159*/ \ 170 88,88,88,88,88,84,87,85,86,86,88,87,88,88,104,89, /*160-175*/ \ 171 104,100,102,104,104,102,100,100,102,103,100,103,128,103,100,104, /*176-191*/ \ 172 128,103,100,100,104,103,104,103,128,102,104,128,104,128,128,128, /*192-207*/ \ 173 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, /*208-223*/ \ 174 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, /*224-239*/ \ 175 128,128,127,127,128,128,127,128,128,128,140,128,144,128,144,132, /*240-255*/ \ 176 144,135,143,144,144,143,144,143,144,144,142,143,144,144,140,144, /*256-271*/ \ 177 138,141,144,144,144,143,144,143,144,144,144,144,144,144,160,160, /*272-287*/ \ 178 160,160,148,152,156,157,160,160,160,158,159,160,160,160,160,159, /*288-303*/ \ 179 160,160,160,159,159,160,160,159,159,160,160,161,176,160,162,181, /*304-319*/ \ 180 182,185,186,184,185,186,185,176,185,186,200,192,186,208,184,208, /*320-335*/ \ 181 185,206,200,200,203,200,208,204,204,206,208,208,209,208,208,208, /*336-351*/ \ 182 206,208,206,206,200,204,204,208,208,208,208,208,208,208,208,208, /*352-367*/ \ 183 207,204,206,207,208,208,208,206,208,208,208,208,208,208,208,206, /*368-383*/ \ 184 208,208,208,208,206,208,208,208,256,256,208,256,256,206,256,256, /*384-399*/ \ 185 256,256,256,208,255,256,256,256,256,256,256,256,256,256,256,256, /*400-415*/ \ 186 256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256, /*416-431*/ \ 187 256,256,255,256,256,256,256,256,256,256,256,254,256,255,256,256, /*432-447*/ \ 188 256,256,256,256,256,256,255,255,256,256,256,255,254,254,256,253, /*448-463*/ \ 189 256,256,256,256,256,256,256,256,256,255,255,256,256,256,256,256, /*464-479*/ \ 190 256,256,256,255,256,256,255,256,256,256,256,255,254,256,256,255, /*480-495*/ \ 191 256,256,256,256,255,256,255,255,255,256,255,256,256,256,257,264, /*496-511*/ \ 192 272,264,269,281,277,281,280,268,269,281,282,282,279,264,288,288, /*512-527*/ \ 193 287,280,281,280,288,288,288,282,287,288,287,288,287,288,282,287, /*528-543*/ \ 194 281,282,288,288,280,288,288,282,281,288,280,282,287,288,287,288, /*544-559*/ \ 195 282,288,288,288,287,285,288,287,288,288,288,288,288,288,289,292, /*560-575*/ \ 196 296,293,304,304,304,312,304,306,304,305,303,304,312,304,305,316, /*576-591*/ \ 197 315,318,318,312,316,316,318,316,316,320,318,318,320,320,371,370, /*592-607*/ \ 198 371,372,373,372,372,373,376,376,378,377,378,378,384,373,377,372, /*608-623*/ \ 199 378,372,378,378,378,378,377,384,378,384,378,372,378,378,378,378, /*624-639*/ \ 200 372,377,378,378,377,378,378,378,377,371,384,384,378,378,378,378, /*640-655*/ \ 201 378,377,378,378,378,378,378,378,378,384,384,384,383,384,417,384, /*656-671*/ \ 202 378,378,378,378,377,378,378,401,378,400,378,378,400,408,384,412, /*672-687*/ \ 203 384,384,414,408,416,417,411,416,384,414,414,414,416,416,417,414, /*688-703*/ \ 204 416,420,400,412,412,412,416,413,416,414,414,416,416,416,412,412, /*704-719*/ \ 205 416,416,414,416,416,416,417,416,416,416,416,414,415,416,416,416, /*720-735*/ \ 206 414,378,378,377,384,378,378,384,384,384,384,384,384,384,414,384, /*736-751*/ \ 207 415,416,416,413,414,416,416,413,414,414,416,416,415,416,416,400, /*752-767*/ \ 208 412,408,417,411,412,416,415,416,416,412,416,417,416,414,416,416, /*768-783*/ \ 209 416,416,416,416,416,416,416,414,416,416,416,400,415,416,416,401, /*784-799*/ \ 210 416,420,412,408,408,412,416,407,408,416,415,412,416,414,416,415, /*800-815*/ \ 211 414,412,413,416,412,414,413,416,416,416,418,416,416,416,417,417, /*816-831*/ \ 212 419,418,420,419,420,420,426,421,424,426,424,432,426,425,426,426, /*832-847*/ \ 213 426,426,432,432,432,432,432,432,432,432,436,432,432,432,433,435, /*848-863*/ \ 214 440,438,440,438,436,440,440,438,448,444,444,448,440,444,448,446, /*864-879*/ \ 215 444,448,444,443,444,446,446,448,448,449,448,448,448,449,450,468, /*880-895*/ \ 216 466,468,460,457,458,460,463,456,460,456,464,467,462,473,512,458, /*896-911*/ \ 217 488,468,512,473,512,468,512,510,512,512,510,510,512,508,512,512, /*912-927*/ \ 218 512,512,510,512,512,510,512,510,474,511,486,512,512,512,512,512, /*928-943*/ \ 219 509,510,510,512,512,512,512,512,512,512,514,512,512,511,508,512, /*944-959*/ \ 220 512,510,512,511,512,508,512,512,512,511,512,512,510,512,512,510, /*960-975*/ \ 221 512,510,510,512,512,511,512,512,512,512,512,512,512,512,549,512, /*976-991*/ \ 222 512,512,545,512,512,512,510,512,512,512,512,512,512,512,510,512, /*992-1007*/ \ 223 512,512,551,510,545,512,550,512,552,545,511,557,545,512,544,551 /*1008-1023*/ \ 224 225 #define MPFR_MUL_THRESHOLD 6 /* limbs */ 226 #define MPFR_SQR_THRESHOLD 9 /* limbs */ 227 #define MPFR_DIV_THRESHOLD 6 /* limbs */ 228 #define MPFR_EXP_2_THRESHOLD 530 /* bits */ 229 #define MPFR_EXP_THRESHOLD 12546 /* bits */ 230 #define MPFR_SINCOS_THRESHOLD 22043 /* bits */ 231 #define MPFR_AI_THRESHOLD1 -17975 /* threshold for negative input of mpfr_ai */ 232 #define MPFR_AI_THRESHOLD2 1889 233 #define MPFR_AI_THRESHOLD3 28004 234 /* Tuneup completed successfully, took 13753 seconds */ 235