1 /* Various Thresholds of MPFR, not exported. -*- mode: C -*- 2 3 Copyright 2005, 2006, 2007, 2008, 2009, 2010, 2011 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.3.2 */ 23 /* gcc14.fsffrance.org (Intel(R) Xeon(R) CPU X5450 @ 3.00GHz) with gmp 5.0.2 */ 24 25 26 #define MPFR_MULHIGH_TAB \ 27 -1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,9, \ 28 10,10,12,12,13,13,13,13,14,16,16,17,18,19,20,24, \ 29 24,24,24,24,26,26,26,26,28,28,28,30,30,32,32,28, \ 30 28,30,30,32,32,32,32,32,32,32,32,34,36,48,38,36, \ 31 40,46,48,48,48,48,48,48,48,48,48,48,48,56,56,56, \ 32 56,48,48,48,56,60,60,60,64,64,56,56,56,60,60,60, \ 33 64,69,64,64,64,69,69,69,69,69,69,69,64,64,75,81, \ 34 81,80,80,80,81,81,81,81,81,81,87,81,87,87,92,93, \ 35 92,87,93,92,87,90,93,92,93,92,90,93,92,93,92,93, \ 36 92,93,93,93,104,93,99,93,99,104,105,104,105,104,105,104, \ 37 111,104,111,110,104,117,117,117,117,117,117,104,105,141,141,140, \ 38 141,141,141,141,141,141,141,141,141,141,141,141,141,140,141,141, \ 39 141,141,141,141,141,141,141,141,140,141,141,141,141,138,140,141, \ 40 141,141,140,141,141,141,141,141,141,141,141,141,165,141,153,141, \ 41 153,165,188,188,188,188,188,188,188,188,188,188,188,188,188,188, \ 42 188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188, \ 43 188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188, \ 44 188,188,204,204,188,203,188,188,204,204,188,188,216,220,220,220, \ 45 220,204,204,220,220,220,220,220,220,220,220,220,220,220,220,220, \ 46 220,220,220,235,236,219,220,220,236,236,236,236,236,236,236,236, \ 47 236,236,236,236,236,236,236,282,282,282,282,282,282,282,282,282, \ 48 282,282,282,282,282,282,282,282,282,281,282,280,282,282,282,282, \ 49 282,282,282,282,282,282,282,281,281,282,281,281,282,282,282,282, \ 50 282,282,282,282,282,282,282,282,282,282,282,281,282,280,281,282, \ 51 282,282,282,282,306,282,306,330,330,306,281,330,282,282,330,330, \ 52 330,282,330,329,330,330,330,330,330,330,330,330,330,330,330,330, \ 53 330,330,330,330,330,330,330,330,330,330,354,354,330,330,330,329, \ 54 330,330,330,330,330,330,330,329,330,330,354,354,330,330,330,330, \ 55 330,330,378,330,354,330,354,354,354,354,354,377,378,354,354,354, \ 56 378,354,378,378,354,353,354,378,354,378,378,377,378,378,378,408, \ 57 408,408,378,408,408,408,378,416,408,408,377,378,378,408,408,407, \ 58 408,408,408,408,408,408,408,440,408,440,440,440,439,440,440,440, \ 59 432,439,440,440,440,439,440,440,440,439,440,439,440,439,440,440, \ 60 440,440,440,439,440,440,440,440,440,439,440,440,440,440,439,440, \ 61 440,440,440,439,471,440,440,440,440,440,440,439,440,440,440,440, \ 62 440,440,440,440,440,440,472,440,440,439,440,440,440,439,440,440, \ 63 440,472,439,440,440,440,472,440,471,472,472,472,472,472,472,471, \ 64 471,472,471,472,472,472,504,504,504,504,504,504,504,504,472,471, \ 65 472,472,504,472,471,472,504,504,504,504,504,503,504,504,504,504, \ 66 504,503,504,504,504,504,503,504,504,504,504,504,503,504,504,504, \ 67 504,504,503,504,504,504,504,504,504,504,504,504,504,504,504,504, \ 68 504,504,504,504,544,544,544,544,544,544,544,544,544,544,544,544, \ 69 542,543,544,544,544,544,544,544,544,544,544,544,544,544,544,544, \ 70 543,544,544,544,544,544,544,544,544,544,544,544,544,544,544,544, \ 71 544,592,544,544,592,592,544,592,592,591,592,592,632,631,592,592, \ 72 592,592,592,592,592,640,640,640,640,640,616,616,616,616,616,616, \ 73 632,592,616,616,632,630,631,632,632,632,616,632,640,632,632,640, \ 74 640,640,640,640,640,640,639,640,632,632,639,640,640,640,632,632, \ 75 640,639,640,640,632,640,640,640,640,640,640,640,640,640,640,640, \ 76 640,640,640,640,640,640,632,640,640,640,640,640,640,640,640,640, \ 77 640,640,640,640,640,640,640,640,640,640,632,688,640,640,632,632, \ 78 640,640,640,640,639,640,640,640,688,632,687,640,712,688,640,640, \ 79 640,640,640,712,640,640,640,712,736,640,640,640,711,712,736,736, \ 80 640,640,688,712,712,712,712,712,728,736,728,728,736,736,736,736, \ 81 736,736,736,736,734,736,728,736,736,736,728,736,736,736,736,736, \ 82 736,736,736,736,735,712,736,736,736,712,736,736,736,736,736,736, \ 83 736,736,736,712,736,736,712,736,728,712,736,712,736,736,736,736, \ 84 728,712,736,736,735,736,736,736,735,736,736,736,736,735,736,736, \ 85 736,736,736,736,736,736,736,736,736,736,736,736,736,734,736,736, \ 86 736,736,735,736,736,736,735,736,736,736,736,736,736,736,736,736, \ 87 736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \ 88 736,736,736,736,736,736,736,736,736,736,736,736,736,736,735,736, \ 89 736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \ 90 824,824,832,832,832,832,824,832,832,832,832,832,824,831,832,832 \ 91 92 #define MPFR_SQRHIGH_TAB \ 93 -1,0,0,0,0,0,0,5,6,6,7,8,8,8,10,9, \ 94 10,11,11,11,12,13,13,13,14,16,16,17,17,17,17,17, \ 95 18,19,20,21,20,23,24,21,26,23,23,24,24,24,25,28, \ 96 26,28,28,34,32,34,32,32,34,34,32,34,34,34,34,34, \ 97 34,36,40,38,38,36,42,42,40,40,40,40,42,42,42,42, \ 98 46,42,48,48,48,46,52,52,52,52,52,52,56,56,56,56, \ 99 64,56,64,64,64,64,68,56,64,64,64,68,63,64,64,68, \ 100 68,68,68,68,64,68,68,68,72,64,68,68,68,64,67,68, \ 101 68,68,68,68,68,68,72,84,80,72,72,72,72,72,76,76, \ 102 76,76,80,80,76,76,80,84,80,80,80,84,84,84,84,84, \ 103 84,84,84,96,84,84,92,92,96,96,96,99,92,92,92,95, \ 104 96,105,111,105,104,105,104,104,105,105,105,105,104,105,104,105, \ 105 99,114,105,116,117,117,117,123,117,123,116,123,116,111,123,123, \ 106 123,123,123,123,123,117,117,117,123,123,123,117,123,117,123,123, \ 107 123,123,123,123,117,123,123,123,156,123,123,141,123,123,135,135, \ 108 123,148,123,141,141,156,156,129,156,163,156,164,156,156,156,135, \ 109 156,141,155,164,156,156,164,148,148,147,141,164,164,164,164,156, \ 110 164,164,164,164,163,164,164,164,164,164,164,164,164,164,164,164, \ 111 164,156,164,164,156,164,164,164,188,163,164,164,164,164,187,188, \ 112 180,164,204,204,164,188,196,188,188,204,196,180,196,204,188,196, \ 113 220,187,204,220,204,180,220,220,204,204,196,204,220,204,220,220, \ 114 220,220,204,220,220,220,220,220,220,220,220,220,220,220,220,220, \ 115 252,220,220,220,220,220,252,220,252,220,220,220,220,252,252,252, \ 116 252,252,252,252,252,252,252,252,252,252,252,252,267,268,252,252, \ 117 252,250,252,252,252,268,251,252,268,252,268,268,268,252,252,252, \ 118 265,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268, \ 119 268,267,268,268,268,267,268,268,268,267,268,268,268,268,268,268, \ 120 268,268,252,268,252,268,268,268,268,268,268,265,268,268,268,268, \ 121 268,268,268,268,268,268,268,268,268,268,268,268,265,268,268,268, \ 122 252,268,268,266,268,268,268,328,265,282,312,268,268,268,268,268, \ 123 268,268,268,268,268,268,268,311,310,282,282,294,312,282,281,294, \ 124 282,268,312,312,268,311,312,268,268,312,268,312,312,268,312,327, \ 125 268,312,328,268,328,268,328,328,328,312,328,312,327,328,328,312, \ 126 327,328,328,327,325,327,327,359,328,328,327,328,328,328,328,328, \ 127 311,328,360,360,360,360,360,360,360,360,360,360,328,360,360,360, \ 128 328,312,328,360,327,328,328,359,360,328,359,328,312,360,360,327, \ 129 312,408,328,440,328,328,328,328,328,392,328,328,408,408,408,392, \ 130 407,408,408,408,392,407,408,408,407,407,408,408,408,392,408,408, \ 131 407,408,392,408,408,440,406,408,408,408,440,408,408,408,440,440, \ 132 440,440,440,392,440,392,440,440,440,440,440,440,440,440,440,440, \ 133 408,392,440,440,440,438,439,440,440,440,440,440,440,439,440,439, \ 134 440,440,440,504,408,504,408,408,408,472,408,408,407,408,440,439, \ 135 439,440,440,440,440,440,440,440,437,440,440,440,439,504,503,504, \ 136 504,503,504,504,440,502,504,503,503,504,504,503,504,504,504,504, \ 137 504,503,504,504,499,503,502,504,504,536,502,504,504,504,536,504, \ 138 504,504,503,504,504,503,536,504,502,536,503,504,504,504,536,536, \ 139 504,504,504,536,536,535,504,536,535,504,504,504,504,504,504,536, \ 140 536,536,503,536,504,503,536,536,504,535,536,536,504,535,520,536, \ 141 504,504,504,536,535,536,520,536,535,520,536,535,535,536,536,535, \ 142 504,536,536,535,536,535,535,536,536,536,536,536,535,504,536,536, \ 143 536,536,536,536,536,536,536,536,536,535,536,536,536,535,504,536, \ 144 536,536,536,536,504,535,536,536,536,535,535,536,536,536,536,536, \ 145 536,535,536,504,536,535,536,536,536,536,536,504,504,536,504,535, \ 146 536,504,536,535,536,504,504,504,536,536,504,536,504,536,504,536, \ 147 536,504,535,536,632,535,536,536,535,536,536,536,536,536,632,632, \ 148 536,631,536,536,535,536,536,536,536,535,536,536,536,631,632,632, \ 149 536,536,630,535,536,536,600,632,631,600,536,536,536,536,535,632, \ 150 536,598,536,600,536,631,600,568,632,568,568,568,568,568,664,566, \ 151 568,568,632,632,664,568,664,663,632,629,632,535,600,536,536,536, \ 152 632,536,536,599,536,630,536,632,631,632,600,600,600,664,600,664, \ 153 664,632,600,599,664,600,662,663,664,599,598,616,632,625,632,630, \ 154 628,627,630,631,632,663,632,631,632,630,632,631,632,626,632,632, \ 155 632,663,631,631,632,632,632,664,632,632,600,632,632,600,632,632, \ 156 600,600,632,632,632,662,663,663,663,600,664,632,664,663,664,632 \ 157 158 #define MPFR_DIVHIGH_TAB \ 159 0,1,2,3,4,5,6,7,8,9,10,11,12,13,12,13, \ 160 14,15,16,13,14,14,14,15,15,17,17,17,19,19,19,19, \ 161 23,23,19,25,23,25,23,25,25,22,26,28,25,28,25,25, \ 162 28,27,31,27,29,28,33,31,32,33,31,32,33,33,35,35, \ 163 35,39,37,43,39,37,39,41,39,40,39,40,41,45,41,47, \ 164 45,45,47,43,44,45,50,54,49,46,53,47,55,56,52,55, \ 165 52,60,60,52,60,64,62,55,55,62,55,58,56,64,61,59, \ 166 63,63,64,59,60,60,63,64,64,63,64,64,68,68,66,66, \ 167 68,69,71,71,70,71,71,72,78,74,74,71,72,78,78,74, \ 168 76,77,78,79,78,80,79,79,84,83,80,80,82,95,96,83, \ 169 92,92,88,91,92,84,95,95,92,96,94,91,94,92,96,94, \ 170 96,96,96,104,94,94,112,112,104,112,112,112,96,112,112,112, \ 171 112,112,110,104,112,112,112,111,112,108,110,120,112,112,112,112, \ 172 112,112,120,112,120,120,112,120,120,120,120,120,128,120,120,116, \ 173 128,128,124,128,120,128,128,120,120,120,128,120,128,120,124,128, \ 174 128,128,128,127,128,128,126,128,128,128,128,127,136,128,138,137, \ 175 137,135,138,138,138,137,135,138,150,150,138,147,150,138,150,150, \ 176 150,150,160,160,156,150,156,148,150,158,162,160,161,160,150,160, \ 177 160,160,168,156,156,160,168,173,162,156,180,160,160,157,168,160, \ 178 160,160,162,168,168,160,184,162,184,162,160,160,174,160,184,180, \ 179 184,184,180,184,184,186,180,184,184,184,184,184,186,188,188,192, \ 180 185,184,184,186,192,192,192,186,182,192,192,185,184,184,192,208, \ 181 192,184,184,180,192,184,192,186,186,184,192,186,186,191,186,185, \ 182 192,216,192,192,208,192,191,192,192,192,204,192,207,192,216,208, \ 183 208,216,216,197,196,216,216,208,216,222,216,222,208,222,208,222, \ 184 224,208,209,216,216,209,224,207,216,222,224,224,208,223,224,224, \ 185 224,216,222,222,224,224,224,216,224,216,222,221,222,224,224,224, \ 186 224,224,224,232,224,222,224,232,225,233,224,240,224,232,256,240, \ 187 256,256,240,255,240,256,256,240,232,240,232,232,240,232,256,256, \ 188 256,256,256,256,256,256,255,256,256,240,256,240,256,240,254,252, \ 189 256,256,256,256,256,256,256,256,254,256,256,282,276,256,254,256, \ 190 256,255,282,256,255,256,255,256,255,288,256,264,264,256,274,276, \ 191 276,269,273,273,282,269,276,276,276,276,273,282,276,282,276,277, \ 192 280,312,282,281,288,282,276,282,276,276,288,312,276,288,300,276, \ 193 304,276,288,300,304,312,312,312,312,312,306,312,312,312,316,300, \ 194 324,312,320,320,300,312,312,312,312,324,312,330,300,320,312,312, \ 195 316,318,324,324,318,312,312,324,336,336,324,312,312,336,324,320, \ 196 312,336,312,324,336,336,336,368,324,348,312,336,368,312,312,320, \ 197 368,372,368,312,324,376,372,312,368,376,376,372,370,372,318,376, \ 198 320,372,372,368,372,324,376,376,376,376,368,372,376,376,376,376, \ 199 372,372,376,376,376,372,384,376,372,368,384,376,376,370,376,376, \ 200 376,371,372,368,384,336,370,370,376,372,376,376,368,376,376,372, \ 201 376,370,376,368,376,372,376,376,368,376,376,368,368,376,368,368, \ 202 370,370,372,368,372,376,376,376,376,368,370,368,368,372,376,376, \ 203 372,376,368,376,376,376,372,376,376,372,376,376,368,376,372,376, \ 204 372,368,376,370,376,372,376,372,376,376,372,370,376,376,370,372, \ 205 372,373,376,376,384,384,384,376,376,376,376,384,376,376,384,384, \ 206 384,416,384,384,408,384,416,384,384,384,384,408,416,416,416,432, \ 207 408,408,416,408,408,416,408,416,416,416,416,416,416,408,407,440, \ 208 432,408,416,408,416,440,416,408,416,416,432,416,416,440,416,416, \ 209 416,440,432,440,408,448,448,408,408,432,440,432,448,416,416,416, \ 210 440,432,432,416,448,432,465,440,432,440,480,448,416,448,432,432, \ 211 480,432,448,440,466,448,432,440,432,440,440,440,480,430,448,448, \ 212 448,439,440,432,438,447,448,440,440,440,448,448,480,432,448,448, \ 213 448,448,448,447,448,448,448,447,448,448,440,465,448,467,448,448, \ 214 448,448,464,464,448,448,466,480,480,480,468,480,448,464,480,464, \ 215 466,466,464,479,480,480,512,480,540,480,496,480,552,512,480,479, \ 216 504,480,552,552,512,480,504,552,564,512,480,480,504,561,564,564, \ 217 512,552,560,564,564,480,564,480,552,480,564,564,564,564,536,564, \ 218 540,564,552,564,564,564,564,552,564,552,564,480,564,552,552,564, \ 219 512,564,546,564,564,564,512,552,552,559,560,561,564,564,560,560, \ 220 552,561,564,564,560,564,561,564,564,564,564,564,564,564,564,560, \ 221 561,560,564,564,560,564,564,552,564,564,564,552,564,564,564,564, \ 222 564,563,564,564,564,564,560,564,564,564,564,552,564,564,560,564 \ 223 224 #define MPFR_MUL_THRESHOLD 7 /* limbs */ 225 #define MPFR_SQR_THRESHOLD 12 /* limbs */ 226 #define MPFR_DIV_THRESHOLD 20 /* limbs */ 227 #define MPFR_EXP_2_THRESHOLD 1024 /* bits */ 228 #define MPFR_EXP_THRESHOLD 9670 /* bits */ 229 #define MPFR_SINCOS_THRESHOLD 23808 /* bits */ 230 #define MPFR_AI_THRESHOLD1 -13250 /* threshold for negative input of mpfr_ai */ 231 #define MPFR_AI_THRESHOLD2 1430 232 #define MPFR_AI_THRESHOLD3 21190 233 /* Tuneup completed successfully, took 770 seconds */ 234