1 /* Various Thresholds of MPFR, not exported. -*- mode: C -*- 2 3 Copyright 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 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, 2011-07-31, gcc 4.4.2 */ 23 /* contributed by Jim Cloos <cloos at jhcloos dot com> with GMP 5.0.2 on a 24 Pentium3-M, where __i386, __i686, __pentiumpro are defined */ 25 26 #define MPFR_MULHIGH_TAB \ 27 -1,0,-1,-1,-1,-1,-1,-1,-1,7,8,9,10,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,28,30,30,30,30,32, \ 30 32,32,34,34,34,32,34,34,34,36,36,36,36,40,40,40, \ 31 42,44,48,48,48,48,48,48,48,48,48,52,52,52,52,52, \ 32 52,52,56,56,60,56,60,60,60,60,60,64,64,64,64,64, \ 33 64,64,64,64,64,64,68,64,64,68,68,68,68,72,72,81, \ 34 81,80,81,81,87,87,87,87,87,87,87,87,87,87,93,87, \ 35 93,93,93,93,93,93,93,93,99,99,93,93,93,92,93,99, \ 36 99,99,99,99,99,99,99,99,105,105,99,105,105,104,105,105, \ 37 105,105,111,117,117,117,117,117,117,117,117,117,117,117,117,117, \ 38 123,123,123,123,141,141,141,141,141,141,141,141,141,141,141,141, \ 39 141,141,141,141,141,141,141,141,141,153,153,153,153,153,153,153, \ 40 153,153,153,153,153,165,165,165,153,165,165,165,165,165,165,165, \ 41 165,165,165,165,165,177,177,165,177,177,177,177,165,177,177,177, \ 42 177,177,177,177,177,177,177,177,177,177,177,177,177,177,177,177, \ 43 177,177,189,204,189,204,204,204,204,204,204,189,204,189,204,204, \ 44 204,204,204,204,204,204,204,204,203,204,204,204,204,204,204,204, \ 45 220,204,220,220,220,220,220,220,220,220,220,220,220,220,220,220, \ 46 236,220,236,236,236,236,236,235,236,235,236,236,236,236,235,236, \ 47 236,236,236,236,236,236,236,236,236,252,252,252,252,252,252,252, \ 48 252,252,252,252,252,252,252,252,282,282,282,282,282,282,282,282, \ 49 282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282, \ 50 282,282,282,282,282,282,282,306,306,282,306,306,306,306,306,306, \ 51 306,306,306,306,306,306,306,306,306,306,306,306,306,306,306,306, \ 52 306,306,306,306,306,330,330,330,329,330,330,330,330,330,330,330, \ 53 330,330,330,330,330,330,330,330,330,330,330,330,330,330,354,354, \ 54 354,354,354,354,354,354,354,354,354,354,354,354,354,354,354,354, \ 55 354,354,354,354,354,354,354,354,354,378,378,378,378,378,378,378, \ 56 378,377,378,378,378,378,378,378,378,378,378,378,378,378,378,378, \ 57 408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408, \ 58 408,408,408,408,408,408,407,408,407,408,408,407,408,408,408,408, \ 59 408,408,439,408,440,440,439,440,440,440,440,439,440,440,439,440, \ 60 439,440,439,440,439,439,440,440,440,440,439,440,439,440,439,440, \ 61 440,440,439,439,440,440,472,440,472,439,440,439,440,440,440,472, \ 62 472,472,469,471,471,472,471,471,472,471,470,470,472,472,471,472, \ 63 472,504,504,463,471,455,438,501,462,497,501,503,459,471,451,467, \ 64 448,501,503,485,504,453,469,470,503,472,496,496,480,467,504,460, \ 65 504,488,488,532,535,497,480,470,504,497,504,492,497,498,536,468, \ 66 504,510,519,528,500,500,495,504,504,504,504,534,504,504,498,504, \ 67 504,511,504,504,504,503,504,563,504,511,504,504,504,504,504,504, \ 68 504,504,533,504,536,536,536,533,536,536,536,536,536,536,536,536, \ 69 536,536,536,536,536,536,536,536,536,536,536,536,536,536,566,536, \ 70 536,536,536,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,592,592, \ 72 592,592,592,592,592,592,592,592,640,592,640,592,640,639,640,640, \ 73 640,640,640,639,640,639,640,640,640,639,640,640,640,640,640,640, \ 74 640,640,640,640,640,640,640,640,640,640,640,640,640,640,640,640, \ 75 639,640,639,639,688,688,688,639,640,639,640,640,640,687,688,688, \ 76 688,687,687,688,688,688,688,688,688,688,688,687,688,736,688,688, \ 77 688,687,636,688,688,688,688,688,688,688,688,688,688,688,688,688, \ 78 688,688,688,688,688,688,688,688,688,688,687,688,688,688,688,688, \ 79 688,688,688,688,688,688,688,688,688,688,688,688,736,736,736,736, \ 80 736,736,736,736,736,736,736,736,688,735,736,736,736,736,736,736, \ 81 736,736,736,736,736,736,736,736,736,736,736,735,736,735,736,736, \ 82 736,735,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \ 83 736,736,736,736,736,736,736,735,736,736,736,736,736,736,736,736, \ 84 736,736,736,736,784,736,784,784,736,736,736,736,736,736,736,736, \ 85 736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \ 86 784,736,784,784,784,784,784,784,736,784,736,784,784,784,784,736, \ 87 784,783,784,784,784,784,784,784,784,784,784,784,784,784,784,784, \ 88 784,784,784,784,784,784,784,784,784,784,784,832,784,784,784,784, \ 89 832,784,832,831,832,831,832,832,832,832,832,784,784,784,784,784, \ 90 832,784,832,784,832,832,832,832,832,832,832,832,832,832,832,832 \ 91 92 #define MPFR_SQRHIGH_TAB \ 93 -1,0,0,-1,-1,-1,-1,5,6,6,7,7,8,8,9,9, \ 94 10,11,12,11,12,13,14,13,14,15,16,15,16,16,17,17, \ 95 18,19,19,19,20,20,21,22,23,22,23,24,25,24,25,26, \ 96 27,26,27,27,28,28,29,29,30,31,32,31,32,32,33,34, \ 97 35,34,35,36,36,38,38,38,39,40,40,40,41,41,41,41, \ 98 42,43,44,44,48,48,48,48,48,50,52,50,52,52,54,54, \ 99 56,56,58,54,54,54,56,56,56,56,58,58,60,60,62,64, \ 100 64,64,62,62,64,64,64,64,64,66,66,68,68,70,68,72, \ 101 70,72,74,72,74,72,72,72,74,74,76,72,72,72,74,74, \ 102 76,76,76,76,78,78,78,80,80,80,80,80,80,80,87,90, \ 103 87,90,90,93,93,90,90,90,90,93,93,93,90,96,96,93, \ 104 96,96,96,96,96,93,99,96,102,99,99,99,96,102,102,102, \ 105 108,102,105,105,105,108,111,111,108,111,111,111,111,111,111,117, \ 106 114,117,114,117,117,120,120,120,120,120,120,120,123,126,126,126, \ 107 126,129,129,129,129,129,132,132,132,135,135,135,141,141,141,141, \ 108 141,141,148,148,148,152,148,152,152,148,152,156,156,156,156,156, \ 109 160,135,141,152,141,141,141,141,141,141,141,141,141,141,141,141, \ 110 141,141,152,141,156,152,156,156,160,160,160,152,160,156,156,156, \ 111 160,160,156,168,160,168,164,164,168,160,168,176,172,168,168,172, \ 112 172,172,176,176,188,176,176,172,188,188,188,188,188,187,188,188, \ 113 188,188,188,188,196,188,196,196,196,196,196,204,204,204,204,204, \ 114 204,204,204,212,212,212,212,212,212,212,212,220,220,220,220,220, \ 115 220,220,220,219,220,220,220,228,220,228,220,220,228,228,220,220, \ 116 220,236,236,228,228,236,228,236,228,244,244,228,244,244,236,236, \ 117 258,236,258,258,258,258,258,258,258,264,258,264,264,264,264,264, \ 118 264,264,264,264,264,258,264,258,264,282,258,264,282,282,282,282, \ 119 282,264,264,282,282,276,264,264,282,294,282,282,282,282,282,282, \ 120 282,282,282,282,282,282,282,282,282,282,282,282,294,282,282,282, \ 121 282,282,282,306,282,282,306,306,282,306,306,306,306,318,306,318, \ 122 318,318,318,318,318,318,318,318,318,318,318,330,330,318,318,318, \ 123 330,318,318,330,330,318,318,318,318,318,318,330,342,330,330,330, \ 124 330,330,330,330,330,330,330,330,330,318,330,318,318,342,342,318, \ 125 342,318,318,342,318,330,330,330,330,330,318,330,330,318,330,318, \ 126 342,330,342,342,342,342,342,342,342,330,342,342,330,342,342,342, \ 127 342,354,342,342,342,342,342,342,342,354,342,342,354,354,354,342, \ 128 354,354,354,354,354,354,354,378,366,366,366,366,378,366,366,366, \ 129 378,408,366,378,378,378,378,378,378,378,378,378,378,424,424,424, \ 130 424,424,424,424,424,408,408,408,408,408,408,408,408,408,408,408, \ 131 408,408,424,424,408,424,408,424,424,408,408,424,424,424,424,424, \ 132 424,424,424,424,424,424,408,424,424,424,424,424,440,424,440,424, \ 133 424,440,424,424,424,424,440,440,440,440,424,424,440,440,424,424, \ 134 424,424,440,424,440,456,456,424,440,440,440,440,456,424,424,424, \ 135 440,440,456,440,472,456,440,440,472,440,456,440,440,440,456,440, \ 136 440,440,456,456,456,472,471,472,456,472,440,472,488,488,455,455, \ 137 456,456,488,456,472,488,504,472,456,504,488,488,456,472,472,471, \ 138 472,502,472,472,496,488,487,503,456,504,504,503,504,456,456,487, \ 139 488,488,504,488,487,504,503,503,504,504,503,503,503,504,502,503, \ 140 502,504,519,501,504,551,502,520,520,488,504,479,517,503,488,463, \ 141 472,456,504,503,487,519,552,534,485,480,486,502,499,552,504,534, \ 142 486,440,504,511,512,533,516,472,536,567,534,494,519,440,542,534, \ 143 528,592,468,536,516,485,472,583,550,509,537,471,493,533,526,446, \ 144 558,498,499,495,487,571,500,544,471,583,545,530,470,566,520,536, \ 145 558,463,504,544,534,494,520,542,522,520,552,520,514,483,434,607, \ 146 566,538,536,552,486,607,623,606,520,453,588,476,614,497,472,504, \ 147 504,566,552,504,504,504,504,504,504,504,504,504,504,552,520,504, \ 148 520,520,520,504,520,520,504,520,536,520,520,536,536,536,536,536, \ 149 536,536,536,586,536,536,520,555,504,565,520,552,536,552,552,552, \ 150 552,552,552,552,552,552,552,552,552,552,552,552,552,552,568,552, \ 151 568,552,568,568,568,568,559,560,568,552,552,568,568,552,568,584, \ 152 552,552,552,552,552,552,568,568,552,568,568,552,568,568,552,552, \ 153 584,568,568,568,568,568,568,568,568,568,552,568,584,584,568,552, \ 154 584,584,584,584,584,584,584,568,568,568,568,616,568,568,616,568, \ 155 600,584,600,600,600,632,616,600,584,616,616,632,632,584,632,616, \ 156 616,616,616,616,616,632,632,616,616,632,632,616,616,632,616,616 \ 157 158 #define MPFR_DIVHIGH_TAB \ 159 0,1,2,3,4,5,6,7,8,7,10,9,10,11,12,13, \ 160 14,15,16,17,18,16,14,16,16,19,19,18,20,19,20,18, \ 161 24,19,20,23,24,21,21,23,27,24,28,29,28,28,28,28, \ 162 31,31,30,28,34,29,32,32,33,34,35,31,34,38,38,34, \ 163 35,36,38,38,38,40,41,43,39,42,43,42,42,43,44,43, \ 164 45,48,49,48,51,50,50,48,50,48,51,50,51,52,53,50, \ 165 55,51,53,54,56,59,56,59,58,55,57,59,59,63,64,63, \ 166 63,64,64,59,64,64,67,64,63,67,67,71,67,67,71,66, \ 167 75,75,75,75,73,75,73,75,75,75,73,75,84,73,74,73, \ 168 76,76,75,81,76,79,81,84,81,83,84,84,84,84,88,86, \ 169 83,88,96,94,96,96,96,96,96,96,96,95,96,96,96,104, \ 170 96,100,100,104,104,104,96,96,96,104,100,96,102,96,104,104, \ 171 102,104,100,104,112,104,104,112,112,112,104,112,120,112,112,112, \ 172 112,120,110,118,118,118,119,112,120,118,120,112,118,127,128,128, \ 173 128,128,128,128,128,128,128,128,128,128,128,128,128,136,128,136, \ 174 128,128,128,128,128,128,128,128,127,128,128,128,128,128,130,133, \ 175 134,136,136,135,136,136,150,136,136,138,148,140,136,143,148,150, \ 176 150,150,150,148,150,148,148,150,156,149,168,150,160,161,168,168, \ 177 168,168,168,162,168,162,167,168,168,168,168,168,162,174,168,168, \ 178 174,174,184,168,168,176,162,168,192,174,168,168,173,174,186,174, \ 179 174,168,192,174,168,174,168,168,186,192,192,180,174,176,192,192, \ 180 185,192,192,180,192,192,186,192,192,192,192,192,184,192,208,208, \ 181 208,208,190,192,190,192,192,191,186,192,192,208,192,192,192,192, \ 182 192,192,196,204,204,192,204,192,208,192,191,192,208,208,198,208, \ 183 205,220,197,218,222,208,216,199,207,220,206,224,214,204,208,219, \ 184 221,209,227,207,221,216,208,236,222,244,225,208,208,212,224,222, \ 185 229,230,225,221,222,256,227,240,221,224,240,216,240,231,224,263, \ 186 246,232,240,240,240,240,239,240,240,234,234,240,234,238,240,240, \ 187 240,240,256,256,240,256,240,240,240,234,256,240,240,256,234,256, \ 188 256,239,272,244,256,255,256,240,256,240,256,255,240,255,256,256, \ 189 256,254,254,256,244,256,256,256,256,256,256,256,256,253,272,255, \ 190 256,256,252,256,256,256,256,256,256,272,256,256,256,256,257,272, \ 191 272,272,272,272,264,270,272,288,272,280,282,282,280,280,270,282, \ 192 282,282,288,282,288,282,282,300,286,288,300,282,282,288,300,312, \ 193 300,298,306,300,304,304,304,300,300,300,316,306,300,288,306,311, \ 194 324,312,320,300,306,336,320,300,324,320,336,336,336,328,336,324, \ 195 336,336,328,336,322,328,336,336,336,336,312,336,336,336,336,336, \ 196 336,336,336,335,336,344,348,336,353,349,336,336,348,348,346,336, \ 197 352,320,336,336,336,336,352,336,336,336,336,336,336,336,336,336, \ 198 336,336,336,330,336,336,336,336,334,335,336,336,344,344,348,336, \ 199 348,336,352,336,336,348,336,348,336,348,352,351,348,336,336,336, \ 200 352,352,352,348,352,336,336,384,336,336,352,348,336,348,376,352, \ 201 352,372,384,352,384,352,352,352,348,384,348,349,384,351,384,353, \ 202 368,352,350,353,378,372,372,372,384,352,384,352,408,384,378,368, \ 203 383,384,408,356,371,368,372,371,384,376,384,408,384,407,372,384, \ 204 408,369,406,383,377,384,394,382,370,416,408,378,369,372,381,400, \ 205 378,408,376,402,417,408,376,384,382,384,384,408,384,384,384,408, \ 206 384,416,408,408,416,384,384,384,408,384,384,384,396,408,408,408, \ 207 408,408,408,406,408,408,416,416,408,408,408,408,408,416,408,416, \ 208 408,405,416,408,408,440,408,416,416,416,440,408,408,408,440,444, \ 209 408,440,440,408,415,419,440,440,444,443,436,436,440,447,448,440, \ 210 440,416,440,439,440,444,440,444,468,448,440,416,440,416,465,465, \ 211 468,436,468,440,472,439,440,468,472,448,465,468,464,439,440,480, \ 212 480,472,439,468,440,440,468,440,468,468,444,440,448,480,438,440, \ 213 504,439,440,467,480,468,448,465,466,440,468,464,440,472,448,468, \ 214 468,469,456,465,448,460,472,472,468,469,465,480,480,468,472,512, \ 215 468,464,465,469,480,468,504,466,468,480,480,480,468,512,504,469, \ 216 466,466,472,468,480,480,512,469,472,480,480,480,504,477,500,466, \ 217 504,468,480,512,504,512,504,480,480,511,512,510,492,511,503,513, \ 218 503,502,504,512,504,512,504,512,504,512,504,512,513,503,512,504, \ 219 513,504,512,512,510,501,513,503,512,513,498,504,512,510,502,512, \ 220 501,500,552,497,516,511,503,513,497,511,502,509,564,509,504,512, \ 221 503,504,512,504,504,500,512,512,512,511,512,504,557,504,564,564, \ 222 512,564,514,512,516,512,560,564,560,564,564,512,564,564,564,560 \ 223 224 #define MPFR_MUL_THRESHOLD 15 /* limbs */ 225 #define MPFR_SQR_THRESHOLD 14 /* limbs */ 226 #define MPFR_DIV_THRESHOLD 27 /* limbs */ 227 #define MPFR_EXP_2_THRESHOLD 562 /* bits */ 228 #define MPFR_EXP_THRESHOLD 9671 /* bits */ 229 #define MPFR_SINCOS_THRESHOLD 30620 /* bits */ 230 #define MPFR_AI_THRESHOLD1 -28021 /* threshold for negative input of mpfr_ai */ 231 #define MPFR_AI_THRESHOLD2 2991 232 #define MPFR_AI_THRESHOLD3 37474 233 /* Tuneup completed successfully, took 6469 seconds */ 234