1 /* Various Thresholds of MPFR, not exported. -*- mode: C -*- 2 3 Copyright 2005-2016 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, 2010-10-15, gcc 4.4.4 */ 23 /* gcc57.fsffrance.org (Feroceon 88FR131 rev 1 (v5l)) with gmp 5.0.1 */ 24 25 26 #define MPFR_MULHIGH_TAB \ 27 -1,0,0,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,0,0,0,0,0,0,0, \ 30 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \ 31 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \ 32 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \ 33 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \ 34 62,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76, \ 35 76,76,76,84,84,84,88,88,88,92,88,92,92,92,92,92, \ 36 92,92,92,92,92,92,92,92,92,92,92,92,92,92,100,100, \ 37 104,108,104,108,108,108,108,108,108,108,108,108,108,108,108,108, \ 38 108,108,108,108,108,108,108,108,120,116,120,120,129,129,129,135, \ 39 135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135, \ 40 135,135,135,135,135,135,135,147,147,147,147,147,147,153,153,153, \ 41 159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159, \ 42 159,159,159,159,159,159,159,159,159,171,171,171,171,177,177,177, \ 43 183,177,183,183,183,183,183,183,183,183,183,183,183,183,183,183, \ 44 183,183,183,183,183,183,183,183,204,204,204,204,204,204,212,212, \ 45 212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212, \ 46 212,212,212,212,212,212,212,212,212,212,212,228,228,228,228,228, \ 47 228,228,236,236,236,236,236,244,244,244,244,244,244,244,244,244, \ 48 244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244, \ 49 244,244,244,244,260,260,244,244,243,244,244,244,244,244,244,244, \ 50 244,244,244,244,244,284,284,284,284,284,284,284,284,300,300,300, \ 51 300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300, \ 52 300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300, \ 53 300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300, \ 54 300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300, \ 55 300,332,332,332,332,332,332,332,332,332,332,332,332,332,332,348, \ 56 348,348,348,348,348,348,348,348,348,348,348,348,348,348,348,348, \ 57 348,364,364,364,364,364,364,364,348,364,364,364,364,348,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,366,364,364,364,364,364,364,364, \ 60 364,364,390,364,390,390,390,390,390,390,390,390,390,390,390,426, \ 61 426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426, \ 62 426,426,426,426,426,426,426,450,426,450,450,450,450,450,450,450, \ 63 450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450, \ 64 450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450, \ 65 450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450, \ 66 450,450,450,450,474,450,474,498,498,498,498,498,498,498,498,498, \ 67 498,498,498,498,498,498,498,498,497,498,497,498,498,498,498,498, \ 68 498,522,522,522,522,522,522,522,522,522,522,522,522,522,522,522, \ 69 522,522,522,522,522,522,522,522,522,522,522,522,522,522,522,522, \ 70 546,546,546,546,546,546,546,546,546,546,546,546,546,546,546,546, \ 71 546,546,546,546,545,546,568,568,568,546,568,568,568,568,568,568, \ 72 568,568,568,568,568,600,600,600,600,568,600,600,600,568,568,600, \ 73 600,600,600,600,600,600,600,598,600,600,600,600,600,600,600,600, \ 74 599,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600, \ 75 600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600, \ 76 600,600,600,600,600,600,600,600,600,600,600,632,600,600,600,600, \ 77 632,632,600,600,632,632,600,632,664,664,664,664,664,664,664,664, \ 78 664,664,664,664,664,664,664,664,664,664,664,664,664,664,664,664, \ 79 664,664,664,664,664,664,664,664,664,664,664,664,696,696,696,696, \ 80 696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696, \ 81 696,696,696,696,696,696,696,696,695,696,728,696,728,728,727,728, \ 82 728,728,728,728,728,727,728,728,727,728,728,728,728,728,727,728, \ 83 728,727,728,727,728,728,728,728,728,728,727,728,728,727,727,728, \ 84 728,727,728,728,728,728,727,728,728,728,728,728,728,728,728,728, \ 85 728,728,728,728,728,727,728,728,727,728,728,728,728,728,728,728, \ 86 728,728,728,727,727,728,728,728,728,727,728,728,728,728,728,728, \ 87 728,728,728,727,728,728,728,728,728,728,727,728,728,728,728,792, \ 88 792,792,792,792,728,728,760,760,760,728,792,792,760,792,792,760, \ 89 760,760,824,792,824,792,824,792,824,792,824,824,824,824,824,824, \ 90 823,824,824,824,792,792,824,792,824,792,792,792,824,824,792,856 \ 91 92 #define MPFR_SQRHIGH_TAB \ 93 -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \ 94 0,0,0,0,12,12,13,13,14,14,15,15,16,16,17,17, \ 95 18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25, \ 96 26,26,27,27,28,28,29,29,30,30,31,31,32,32,33,33, \ 97 34,34,35,35,36,36,37,37,38,38,39,39,40,40,41,41, \ 98 42,42,43,43,44,44,47,45,46,46,47,47,48,48,49,49, \ 99 50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57, \ 100 58,58,59,59,60,60,61,61,62,62,63,63,64,64,67,65, \ 101 66,66,67,67,68,68,69,69,70,70,71,71,73,72,75,73, \ 102 74,74,75,77,76,76,82,77,82,82,82,82,82,82,82,82, \ 103 82,82,86,86,90,90,90,85,90,90,90,90,90,90,90,94, \ 104 90,94,98,94,98,98,98,98,98,98,98,98,98,98,98,102, \ 105 106,106,106,102,106,106,106,106,106,106,106,110,106,114,114,110, \ 106 110,114,114,114,114,114,114,118,114,114,114,118,122,122,122,118, \ 107 122,122,122,122,122,122,122,126,130,130,126,119,130,120,130,121, \ 108 122,122,123,123,124,124,125,125,126,126,127,128,128,128,130,130, \ 109 130,132,131,132,134,132,141,136,141,138,147,144,147,144,147,144, \ 110 147,150,147,150,153,150,153,156,153,156,159,156,159,156,147,145, \ 111 147,150,147,150,148,150,153,156,153,156,159,156,159,156,159,162, \ 112 159,162,159,162,159,162,165,168,165,168,165,168,171,174,171,174, \ 113 171,174,177,174,171,180,177,174,177,180,183,180,183,180,183,186, \ 114 183,186,183,186,183,180,189,180,195,180,183,180,183,180,183,186, \ 115 183,186,183,186,189,192,195,192,189,192,195,192,195,198,195,198, \ 116 195,198,195,198,201,204,201,204,207,204,207,204,207,210,207,210, \ 117 207,210,207,210,207,220,224,220,223,228,224,224,224,228,204,228, \ 118 204,228,232,228,204,228,232,236,232,236,240,236,240,240,240,244, \ 119 240,240,243,244,240,244,228,244,228,248,228,252,228,252,228,256, \ 120 228,256,236,256,236,240,240,239,244,240,240,240,240,243,244,248, \ 121 244,243,248,248,248,248,252,248,252,256,256,256,256,256,256,256, \ 122 256,256,260,259,260,264,260,264,260,267,268,272,268,272,276,248, \ 123 252,256,256,256,260,259,256,256,256,255,260,264,260,264,260,267, \ 124 260,267,272,272,264,272,272,272,272,272,276,272,276,272,276,275, \ 125 276,280,276,280,284,280,284,288,284,280,292,288,288,291,292,287, \ 126 288,288,292,296,292,291,292,308,308,304,300,308,300,308,308,308, \ 127 308,308,304,308,316,308,316,315,324,324,324,323,324,324,324,324, \ 128 324,323,324,323,324,328,324,323,324,323,336,336,342,336,342,336, \ 129 342,336,342,348,342,348,348,348,348,323,348,353,348,360,354,360, \ 130 360,360,360,360,354,360,366,360,360,360,366,360,366,360,366,372, \ 131 366,372,366,372,378,372,372,372,378,384,378,360,378,384,390,384, \ 132 384,384,384,384,384,384,384,384,390,396,366,372,372,372,372,372, \ 133 378,396,378,384,384,384,384,384,384,384,390,384,424,384,424,423, \ 134 424,423,424,423,424,423,424,432,424,432,424,432,432,432,424,432, \ 135 432,432,432,448,432,432,440,448,440,432,440,448,424,448,448,448, \ 136 448,448,448,432,424,432,432,432,456,432,432,432,432,432,432,432, \ 137 440,432,440,448,448,448,448,448,448,448,448,448,456,448,456,448, \ 138 456,448,456,464,456,464,456,464,464,464,464,464,472,464,464,464, \ 139 464,472,480,464,472,464,480,480,472,480,480,480,480,480,480,480, \ 140 480,480,480,480,488,480,488,464,488,487,496,496,504,496,488,496, \ 141 496,472,504,496,504,512,512,512,512,512,504,512,512,512,512,512, \ 142 512,512,512,512,512,512,512,496,520,488,496,496,496,496,496,496, \ 143 503,504,536,504,496,504,511,504,512,504,512,512,512,512,512,512, \ 144 544,512,512,512,544,528,552,520,528,520,528,520,528,528,528,520, \ 145 528,528,528,536,528,528,528,544,544,536,512,544,544,528,544,544, \ 146 544,552,512,552,512,520,512,520,519,520,528,528,528,528,560,520, \ 147 528,528,528,520,528,536,528,536,528,544,528,536,544,536,544,544, \ 148 544,552,544,552,544,544,544,544,544,544,544,544,560,552,551,560, \ 149 560,552,560,552,560,560,560,560,560,568,576,568,576,568,560,568, \ 150 576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,584, \ 151 576,592,592,584,592,584,592,592,592,544,592,592,592,544,608,600, \ 152 616,600,608,608,616,600,616,552,616,616,616,616,608,616,648,616, \ 153 616,616,648,632,648,632,576,664,631,632,648,632,648,632,648,648, \ 154 647,648,647,648,647,648,647,648,648,648,648,648,647,648,648,648, \ 155 648,648,648,648,648,664,648,648,648,664,616,664,663,664,663,664, \ 156 608,664,616,664,616,664,616,664,608,632,616,616,680,632,616,632 \ 157 158 #define MPFR_DIVHIGH_TAB \ 159 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, \ 160 16,17,18,17,18,17,13,16,16,16,19,18,19,19,20,20, \ 161 23,24,21,24,25,24,27,25,24,26,25,28,27,29,31,31, \ 162 29,31,32,32,32,33,29,34,33,33,34,37,32,36,37,37, \ 163 39,36,36,38,41,41,41,42,42,43,43,45,44,44,44,43, \ 164 45,45,48,44,47,48,47,52,47,49,51,52,49,52,53,49, \ 165 55,57,53,56,57,57,57,59,58,62,56,59,56,63,63,60, \ 166 58,65,64,66,64,60,67,67,62,68,66,66,67,69,65,71, \ 167 70,73,69,68,73,72,73,69,75,75,71,74,75,73,73,78, \ 168 76,75,77,81,80,80,77,77,81,84,85,84,84,80,81,86, \ 169 83,85,85,86,88,88,85,91,87,89,89,93,91,89,89,95, \ 170 96,95,91,91,92,92,96,93,99,99,96,96,97,96,101,100, \ 171 98,107,100,106,104,101,101,101,105,107,109,103,110,107,105,108, \ 172 106,109,111,112,114,109,116,109,116,114,113,117,116,114,115,113, \ 173 114,116,120,120,121,118,117,122,125,118,120,119,125,120,121,121, \ 174 125,125,123,124,125,125,125,125,127,126,127,128,128,131,129,129, \ 175 130,130,131,131,132,132,133,133,134,134,135,144,136,143,145,148, \ 176 143,144,152,152,152,148,149,152,152,152,151,149,160,152,152,152, \ 177 151,151,152,152,168,152,152,150,152,151,152,159,152,160,160,153, \ 178 167,176,159,160,168,160,159,168,167,167,167,168,175,160,178,166, \ 179 165,168,176,168,167,176,168,176,179,168,184,184,180,176,184,169, \ 180 175,175,182,174,175,176,183,184,184,176,192,178,184,183,182,183, \ 181 183,183,184,191,183,186,184,192,184,184,191,199,199,200,200,192, \ 182 192,192,200,208,199,197,200,202,207,208,208,198,210,208,199,209, \ 183 215,208,208,216,208,216,204,215,200,208,211,200,206,207,216,208, \ 184 202,207,208,208,216,208,208,207,214,209,216,216,212,208,218,215, \ 185 214,216,216,211,216,215,216,216,216,224,216,224,218,216,224,218, \ 186 230,224,224,238,222,232,224,226,236,222,228,232,232,238,240,240, \ 187 226,240,230,239,240,239,240,239,240,232,240,231,232,240,233,240, \ 188 240,239,238,240,240,240,246,258,240,238,239,239,240,255,241,258, \ 189 242,254,258,252,253,257,257,252,258,258,252,258,248,254,252,264, \ 190 263,257,262,266,256,266,253,258,264,258,258,270,266,262,258,257, \ 191 258,258,272,259,264,265,284,304,263,266,264,288,304,304,270,282, \ 192 300,304,288,288,288,294,288,292,302,300,286,304,302,288,300,304, \ 193 302,298,304,288,304,304,304,300,288,304,316,304,300,314,288,300, \ 194 312,302,304,304,306,302,303,300,304,304,311,304,316,300,336,318, \ 195 304,318,304,312,316,300,304,308,304,312,320,318,320,336,304,316, \ 196 299,336,318,318,318,304,340,336,320,304,304,336,324,348,305,316, \ 197 334,316,352,336,336,336,318,336,340,336,354,318,320,352,352,352, \ 198 318,336,328,318,352,336,358,330,342,360,366,366,350,334,348,336, \ 199 354,350,348,340,336,352,352,352,336,352,332,350,366,336,351,366, \ 200 352,366,352,352,352,336,336,348,353,336,351,366,366,360,366,346, \ 201 350,362,366,352,366,366,352,364,353,356,348,366,368,352,365,348, \ 202 353,366,350,366,352,352,364,372,354,352,372,352,362,352,368,365, \ 203 354,354,366,372,366,368,364,370,368,368,366,372,368,368,366,366, \ 204 368,405,374,364,366,384,372,366,366,368,367,390,368,400,372,400, \ 205 371,392,413,399,380,400,404,417,415,386,384,400,392,400,405,407, \ 206 399,421,408,400,406,408,415,421,416,400,419,415,406,416,412,408, \ 207 422,408,416,431,416,421,404,416,400,416,417,431,415,392,424,424, \ 208 415,432,421,416,432,432,408,399,415,416,400,424,422,408,420,431, \ 209 423,432,417,416,415,432,413,414,432,424,424,416,416,432,415,409, \ 210 416,424,416,430,415,431,423,432,423,424,424,420,416,431,417,436, \ 211 420,430,424,430,428,420,421,424,428,431,464,430,424,439,428,448, \ 212 432,431,432,433,436,440,464,469,468,453,431,440,448,440,449,463, \ 213 464,439,440,468,480,447,448,463,468,440,472,470,480,464,470,480, \ 214 464,471,471,464,479,460,464,461,488,478,468,480,479,464,488,463, \ 215 450,478,464,469,464,471,488,465,478,488,477,480,481,472,480,488, \ 216 496,468,480,479,488,480,488,469,463,488,480,480,464,477,480,481, \ 217 504,472,480,516,504,504,504,478,480,479,488,516,480,483,485,516, \ 218 488,488,488,516,504,488,481,484,480,516,512,528,504,480,532,503, \ 219 488,504,516,536,488,528,516,488,532,516,528,501,512,504,516,504, \ 220 528,492,520,516,516,504,525,496,516,520,516,512,520,532,528,516, \ 221 516,524,512,508,520,528,516,532,532,516,533,516,528,504,528,516, \ 222 532,576,532,515,516,600,528,517,516,600,600,532,516,600,600,524 \ 223 224 #define MPFR_MUL_THRESHOLD 16 /* limbs */ 225 #define MPFR_SQR_THRESHOLD 31 /* limbs */ 226 #define MPFR_EXP_2_THRESHOLD 469 /* bits */ 227 #define MPFR_EXP_THRESHOLD 5484 /* bits */ 228 #define MPFR_SINCOS_THRESHOLD 23806 /* bits */ 229 #define MPFR_AI_THRESHOLD1 -24060 /* threshold for negative input of mpfr_ai */ 230 #define MPFR_AI_THRESHOLD2 2314 231 #define MPFR_AI_THRESHOLD3 40340 232 /* Tuneup completed successfully, took 8148 seconds */ 233