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 /* gcc11.fsffrance.org (Dual-Core AMD Opteron(tm) Processor 2212) 24 with gmp 5.0.2. 25 Keith Briggs sent similar parameters obtained on a AMD Athlon 26 (__tune_k8__, __x86_64, __amd64, __k8) */ 27 28 29 #define MPFR_MULHIGH_TAB \ 30 -1,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,11,11, \ 31 12,12,11,15,14,14,15,16,18,18,19,20,18,19,19,20, \ 32 22,22,23,24,26,30,28,28,32,30,30,32,32,30,32,32, \ 33 32,30,30,32,32,38,32,32,36,40,40,40,36,38,40,38, \ 34 40,44,40,44,44,44,44,48,48,46,48,48,56,56,56,56, \ 35 56,56,56,60,64,60,60,64,64,64,64,64,64,64,64,64, \ 36 72,72,72,72,72,72,72,72,72,72,72,72,80,80,80,80, \ 37 80,80,80,80,80,80,80,80,80,80,80,80,93,80,93,93, \ 38 93,76,80,93,80,93,93,90,93,93,93,93,93,93,93,93, \ 39 93,93,111,105,93,117,105,105,117,117,111,117,117,105,117,117, \ 40 117,105,117,117,117,117,117,117,117,117,117,117,117,117,117,117, \ 41 117,117,117,117,116,117,116,117,117,117,117,117,117,117,117,117, \ 42 117,117,140,117,140,140,140,140,140,148,148,147,140,156,156,156, \ 43 148,148,156,148,156,156,156,156,156,155,156,155,156,155,156,156, \ 44 156,156,156,156,156,156,156,156,172,172,172,156,172,172,172,172, \ 45 172,172,172,172,180,180,180,180,180,180,180,188,188,188,188,188, \ 46 180,188,188,188,188,187,188,188,188,188,188,188,188,188,188,188, \ 47 188,188,188,188,188,188,188,188,188,188,188,188,188,220,220,204, \ 48 220,220,220,219,220,220,220,220,220,219,220,219,220,219,220,220, \ 49 220,236,236,220,236,219,233,236,233,252,236,252,236,252,252,236, \ 50 235,236,236,252,252,236,236,252,252,236,252,252,236,251,250,251, \ 51 252,252,251,252,252,252,252,252,252,252,252,252,252,252,252,252, \ 52 252,252,284,252,284,284,284,284,284,252,284,284,284,284,284,284, \ 53 283,284,284,284,284,284,284,284,284,284,284,283,284,284,284,284, \ 54 284,284,283,284,284,284,284,284,284,284,284,284,284,300,284,300, \ 55 300,316,300,300,300,316,300,300,316,316,316,316,316,316,316,316, \ 56 316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316, \ 57 316,315,316,316,315,316,316,316,315,316,316,316,316,316,316,316, \ 58 316,316,316,368,316,316,367,368,368,368,368,368,368,368,368,368, \ 59 368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368, \ 60 368,368,368,368,368,368,367,368,368,368,368,367,368,367,367,368, \ 61 368,367,367,368,367,368,368,367,368,368,368,367,368,368,368,368, \ 62 367,368,416,415,416,416,416,416,416,416,415,416,416,416,416,416, \ 63 416,416,416,416,416,416,415,416,415,416,415,416,416,416,416,416, \ 64 416,415,416,416,415,416,416,415,416,416,440,416,416,416,440,416, \ 65 415,416,415,416,464,464,464,464,464,464,463,464,464,464,463,464, \ 66 464,464,464,464,464,463,464,464,474,474,464,464,473,474,474,504, \ 67 474,474,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \ 68 504,504,504,504,504,504,504,504,504,503,504,504,504,504,504,504, \ 69 503,504,504,504,504,504,503,504,504,504,504,504,503,504,504,503, \ 70 504,504,504,504,504,504,504,504,503,504,504,504,504,504,503,504, \ 71 504,504,504,504,568,568,568,504,568,568,568,568,568,568,568,568, \ 72 568,567,568,568,568,567,568,568,568,568,568,568,568,568,568,568, \ 73 568,568,568,568,568,568,568,568,567,567,568,566,568,568,568,567, \ 74 568,568,568,568,568,568,568,568,568,568,567,568,568,567,568,568, \ 75 568,568,568,568,567,568,568,566,567,568,568,568,568,568,568,568, \ 76 568,567,568,568,567,568,567,568,567,568,567,568,567,568,632,568, \ 77 600,632,632,600,631,632,632,632,632,631,600,600,632,632,600,631, \ 78 632,632,632,632,632,632,631,632,632,632,631,632,631,632,632,632, \ 79 632,632,631,632,632,631,632,632,632,631,632,632,632,632,631,632, \ 80 632,632,632,632,630,632,632,632,632,632,631,632,631,632,631,632, \ 81 632,632,632,632,632,632,632,632,631,632,632,632,632,632,632,631, \ 82 632,632,632,631,632,632,632,736,632,631,632,736,632,632,632,632, \ 83 736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \ 84 736,734,736,736,735,736,736,735,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 736,736,736,736,736,736,735,736,736,736,736,736,736,736,735,736, \ 87 736,736,735,736,735,736,736,736,735,736,736,736,736,736,736,736, \ 88 736,736,736,735,736,736,736,735,736,736,736,736,736,735,736,736, \ 89 736,736,736,736,736,736,736,736,736,735,736,735,736,832,736,832, \ 90 832,832,832,832,831,832,832,831,832,832,832,832,832,832,831,832, \ 91 831,832,831,832,832,831,832,832,832,832,832,832,831,832,832,832, \ 92 831,832,832,832,832,832,831,832,832,832,832,832,831,832,831,832, \ 93 832,832,831,832,831,832,831,832,832,832,832,832,832,832,831,832 \ 94 95 #define MPFR_SQRHIGH_TAB \ 96 -1,0,0,0,0,-1,-1,-1,-1,-1,7,7,8,9,9,11, \ 97 11,11,11,11,13,13,15,15,17,17,18,17,17,17,18,20, \ 98 20,21,23,23,20,21,23,23,24,25,23,23,24,25,26,25, \ 99 28,27,28,29,28,31,34,31,34,34,34,34,34,34,34,34, \ 100 40,34,40,36,40,42,40,42,40,40,42,42,48,48,46,46, \ 101 42,46,48,48,46,50,46,52,54,54,48,56,54,50,54,52, \ 102 50,54,54,52,54,54,58,58,62,64,58,58,58,64,62,64, \ 103 58,64,66,72,68,68,68,68,68,62,66,72,72,72,68,68, \ 104 72,72,68,72,72,72,72,72,80,84,80,80,80,84,80,80, \ 105 80,84,84,84,84,84,92,80,80,84,92,84,92,92,92,96, \ 106 100,92,100,92,96,92,92,96,100,100,96,96,96,100,100,96, \ 107 96,96,92,92,96,96,108,100,96,100,100,112,112,112,112,112, \ 108 112,112,108,112,100,104,112,116,104,116,116,108,112,112,112,116, \ 109 112,112,112,112,112,141,135,141,116,135,135,135,141,141,141,141, \ 110 141,141,141,141,141,141,135,135,141,141,147,141,141,141,140,141, \ 111 141,141,147,147,141,147,147,147,147,147,147,147,147,147,147,159, \ 112 153,147,147,159,159,159,159,159,159,159,159,159,165,171,171,171, \ 113 165,170,171,171,165,171,171,171,165,171,171,171,183,171,171,171, \ 114 183,183,171,183,171,183,183,183,183,183,183,183,189,189,183,195, \ 115 171,171,188,171,171,195,171,171,171,195,195,182,195,177,182,183, \ 116 183,181,182,183,183,189,183,194,195,195,194,195,195,195,195,195, \ 117 195,195,213,195,195,195,195,195,189,195,195,195,195,195,195,195, \ 118 212,195,213,195,195,195,213,195,195,195,195,195,195,213,213,201, \ 119 195,195,195,213,213,213,213,213,212,213,213,213,213,213,213,213, \ 120 237,212,213,213,213,213,213,225,213,213,213,249,213,249,237,237, \ 121 237,237,237,249,237,237,237,237,249,237,249,237,237,237,249,249, \ 122 249,236,237,249,249,249,249,249,249,249,249,249,249,249,249,249, \ 123 249,273,273,273,273,273,273,272,273,273,273,273,273,273,273,273, \ 124 273,273,273,273,273,273,273,285,273,284,285,285,285,285,297,284, \ 125 285,297,285,297,297,297,297,297,297,297,297,296,297,296,297,296, \ 126 297,297,297,297,297,297,297,273,297,273,309,273,273,273,273,320, \ 127 321,321,321,285,285,285,285,285,284,285,297,285,297,297,297,297, \ 128 297,297,333,297,297,297,296,297,309,297,297,297,297,285,309,348, \ 129 297,297,348,348,285,321,297,321,321,297,320,321,321,297,297,321, \ 130 297,321,333,366,333,333,309,333,333,333,332,333,297,321,321,321, \ 131 321,348,321,345,348,348,348,366,348,347,348,365,366,365,333,366, \ 132 402,366,333,366,366,366,366,402,366,365,366,366,366,366,366,366, \ 133 366,348,420,420,348,420,419,420,419,420,420,420,366,366,420,366, \ 134 366,365,366,402,366,366,366,366,402,402,402,401,402,402,402,401, \ 135 420,401,402,402,420,420,420,420,402,420,420,420,420,419,420,419, \ 136 420,419,420,420,402,401,420,402,402,420,402,420,402,401,420,420, \ 137 420,420,420,420,420,402,420,420,402,420,420,420,420,420,420,420, \ 138 420,420,420,420,420,420,420,420,420,419,420,420,438,420,420,438, \ 139 420,420,420,420,420,420,438,420,437,438,438,420,438,438,420,420, \ 140 438,420,420,438,438,420,420,420,438,420,420,420,420,419,420,420, \ 141 420,420,420,420,474,419,420,420,420,438,419,456,438,474,438,437, \ 142 438,438,438,438,438,420,438,420,438,438,438,420,420,419,420,420, \ 143 438,420,438,419,420,420,420,420,420,419,420,474,420,420,438,420, \ 144 438,473,474,474,474,473,438,474,474,438,438,437,438,438,438,438, \ 145 438,438,474,437,437,474,560,456,473,474,535,536,474,560,536,536, \ 146 560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560, \ 147 560,560,559,560,560,560,560,560,560,560,560,560,560,560,560,560, \ 148 559,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560, \ 149 560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560, \ 150 559,560,560,560,560,560,560,560,559,560,559,560,560,560,560,559, \ 151 559,560,559,560,560,560,560,560,560,559,560,560,559,560,559,560, \ 152 560,560,559,560,560,560,560,559,560,560,560,560,560,560,560,560, \ 153 560,560,560,560,560,560,560,560,560,560,559,584,560,560,560,560, \ 154 559,560,560,559,560,560,560,560,560,560,559,559,560,560,560,560, \ 155 560,560,559,560,560,560,560,560,560,583,560,560,584,560,584,584, \ 156 584,560,583,583,584,584,582,584,584,584,583,584,584,584,584,584, \ 157 727,584,728,632,728,560,727,728,728,560,584,560,560,727,728,728, \ 158 727,728,728,728,608,728,728,724,728,728,760,727,728,727,728,728, \ 159 728,759,728,696,728,728,728,728,728,727,759,760,727,760,760,727 \ 160 161 #define MPFR_DIVHIGH_TAB \ 162 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, \ 163 14,15,18,19,18,14,22,18,18,18,18,20,18,18,20,22, \ 164 22,22,23,24,26,26,26,28,24,30,28,28,28,30,30,32, \ 165 32,34,32,34,32,34,34,31,32,37,32,37,32,33,34,35, \ 166 39,37,37,39,39,37,39,39,39,39,39,39,43,44,46,46, \ 167 47,45,46,48,52,48,50,50,48,46,50,50,52,56,54,50, \ 168 60,60,60,56,56,64,61,60,56,64,60,64,64,64,64,60, \ 169 64,64,64,63,64,64,64,64,64,64,70,64,64,68,78,66, \ 170 74,69,70,74,70,69,74,78,78,74,74,74,74,78,78,79, \ 171 78,78,78,78,78,78,78,78,78,78,88,88,88,88,88,88, \ 172 92,92,88,91,92,88,95,96,96,96,96,92,92,88,92,112, \ 173 112,112,112,108,112,112,112,112,120,112,112,112,120,112,120,112, \ 174 112,120,120,120,104,112,112,128,112,112,112,120,112,112,120,120, \ 175 128,120,120,120,112,120,128,128,128,120,128,128,128,128,128,128, \ 176 128,128,120,128,128,128,128,128,120,128,128,128,128,128,128,128, \ 177 128,128,128,128,128,128,126,128,128,128,127,128,128,128,144,148, \ 178 136,136,144,144,140,141,140,148,148,151,144,148,148,160,156,148, \ 179 160,160,160,160,156,156,156,148,148,156,148,160,160,160,148,156, \ 180 148,148,148,156,156,156,156,160,156,156,158,156,156,157,160,156, \ 181 156,160,160,158,156,156,158,158,159,160,159,160,160,160,184,183, \ 182 184,184,180,184,184,176,184,184,184,184,186,184,184,184,184,184, \ 183 184,184,186,186,192,184,184,186,184,184,186,183,184,185,186,184, \ 184 184,184,186,185,216,184,192,186,208,192,192,184,208,216,224,209, \ 185 208,216,224,222,224,216,208,224,224,224,208,224,210,224,216,234, \ 186 208,216,216,208,224,216,216,224,224,222,224,224,224,216,224,224, \ 187 224,221,224,216,232,224,224,224,224,224,224,224,208,224,222,224, \ 188 224,224,216,224,232,224,224,216,224,256,224,256,224,248,224,224, \ 189 224,224,224,224,224,222,224,232,222,224,224,224,224,224,230,232, \ 190 256,234,232,240,240,233,240,233,248,240,240,240,240,238,240,256, \ 191 248,240,248,256,256,256,256,256,256,248,256,256,256,256,256,256, \ 192 256,256,256,256,256,256,248,256,248,256,248,248,256,256,256,256, \ 193 256,256,256,256,280,296,280,280,256,288,296,280,256,280,280,296, \ 194 296,296,280,280,280,296,296,296,280,280,280,296,280,296,295,312, \ 195 312,312,312,296,312,311,312,312,312,296,296,312,296,296,312,312, \ 196 312,296,312,312,296,311,312,312,312,312,312,312,312,312,312,296, \ 197 296,312,311,296,312,312,312,312,312,312,312,312,296,312,312,312, \ 198 312,312,312,312,312,312,312,312,296,312,312,312,312,312,312,312, \ 199 312,312,312,312,311,311,312,312,312,312,312,312,312,312,312,312, \ 200 312,312,312,312,312,312,312,312,312,312,312,312,312,312,320,316, \ 201 320,319,319,320,320,320,319,320,319,320,360,320,320,320,352,360, \ 202 368,352,368,368,369,372,344,370,372,366,369,352,370,370,370,360, \ 203 360,360,360,368,360,372,372,360,370,368,372,367,368,360,370,368, \ 204 372,371,370,372,372,372,371,368,368,368,370,370,368,368,368,372, \ 205 370,372,367,368,368,370,368,368,360,368,360,368,370,368,368,367, \ 206 360,368,368,368,372,368,372,368,368,368,372,371,368,416,368,367, \ 207 372,368,372,372,372,370,440,372,368,416,368,368,368,433,448,369, \ 208 440,416,415,416,440,448,440,440,448,448,440,448,440,440,448,416, \ 209 416,416,415,440,417,416,416,418,432,418,417,448,416,432,416,432, \ 210 416,420,440,448,408,416,432,448,416,448,448,448,440,440,440,440, \ 211 448,440,440,440,440,448,416,448,440,416,448,416,448,448,440,448, \ 212 416,440,416,419,417,448,416,420,416,432,433,420,417,432,416,424, \ 213 440,440,440,440,448,437,440,440,448,440,440,448,448,448,448,432, \ 214 480,440,440,440,448,448,448,448,448,448,440,448,445,432,448,448, \ 215 448,439,448,448,468,448,448,440,440,440,448,448,468,496,480,448, \ 216 440,448,440,468,440,496,440,466,448,448,448,468,448,440,448,448, \ 217 448,496,496,496,496,448,448,496,448,468,468,448,448,468,480,467, \ 218 468,512,496,512,512,496,496,480,512,480,496,512,512,512,496,512, \ 219 512,496,496,496,512,512,512,512,512,496,512,512,496,496,496,496, \ 220 512,512,496,512,496,496,496,496,512,512,512,496,480,496,496,496, \ 221 496,496,512,512,512,512,496,496,512,496,496,496,512,480,496,544, \ 222 512,496,496,496,576,512,496,560,496,496,512,561,496,560,496,560, \ 223 560,496,512,512,512,496,512,512,512,576,512,512,512,512,512,512, \ 224 512,512,512,512,560,512,560,512,576,512,576,592,512,560,591,512, \ 225 592,512,576,512,576,592,592,624,592,576,560,512,592,576,592,592 \ 226 227 #define MPFR_MUL_THRESHOLD 19 /* limbs */ 228 #define MPFR_SQR_THRESHOLD 18 /* limbs */ 229 #define MPFR_DIV_THRESHOLD 34 /* limbs */ 230 #define MPFR_EXP_2_THRESHOLD 1031 /* bits */ 231 #define MPFR_EXP_THRESHOLD 11014 /* bits */ 232 #define MPFR_SINCOS_THRESHOLD 26907 /* bits */ 233 #define MPFR_AI_THRESHOLD1 -12404 /* threshold for negative input of mpfr_ai */ 234 #define MPFR_AI_THRESHOLD2 1024 235 #define MPFR_AI_THRESHOLD3 19611 236 /* Tuneup completed successfully, took 759 seconds */ 237