1 /* Various Thresholds of MPFR, not exported. -*- mode: C -*- 2 3 Copyright 2005-2023 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 https://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, 2018-02-22, gcc 6.3.0 */ 23 /* gcc14.fsffrance.org (Intel(R) Xeon(R) CPU X5450 @ 3.00GHz) 24 with GMP 6.1.2 configured with ABI=32, 25 MPFR configured with CFLAGS='-O2 -m32 -march=i686 -mtune=generic' */ 26 27 #define MPFR_MULHIGH_TAB \ 28 -1,0,-1,-1,-1,-1,-1,0,0,0,0,0,0,0,0,0, \ 29 0,0,0,0,0,0,0,15,0,0,0,16,0,17,18,19, \ 30 21,18,19,20,21,21,22,23,24,26,23,28,25,30,30,28, \ 31 29,30,34,32,32,34,34,36,36,38,38,38,40,42,42,42, \ 32 40,46,42,46,44,44,46,52,48,49,50,50,52,52,54,60, \ 33 56,56,58,59,60,60,60,63,64,64,64,64,68,68,68,68, \ 34 68,68,64,68,64,68,68,68,68,68,68,68,68,68,76,76, \ 35 76,76,68,80,84,68,68,84,84,84,84,84,84,84,84,77, \ 36 84,76,80,84,84,76,84,92,84,76,84,84,84,84,92,92, \ 37 93,93,84,110,111,99,93,99,111,99,110,111,106,105,108,104, \ 38 110,111,111,110,111,111,111,110,110,123,116,110,123,123,120,117, \ 39 116,117,116,123,123,123,120,126,123,123,123,129,126,123,129,129, \ 40 126,135,132,135,135,135,135,135,134,135,141,141,154,135,156,141, \ 41 134,148,156,156,156,147,148,164,164,155,156,156,164,163,164,163, \ 42 163,164,164,164,164,164,164,163,171,163,164,172,172,171,172,163, \ 43 164,171,180,177,180,179,180,184,172,179,180,180,176,179,180,171, \ 44 180,180,188,188,180,187,200,204,180,204,204,187,196,203,204,203, \ 45 204,203,204,203,204,203,220,204,220,204,220,220,219,203,204,220, \ 46 220,219,220,219,204,219,220,203,220,204,204,219,220,252,236,251, \ 47 250,251,252,249,252,249,252,251,252,252,252,251,252,251,252,249, \ 48 252,252,252,251,252,252,252,251,252,267,251,252,252,251,268,252, \ 49 252,249,250,252,252,252,268,252,252,268,252,268,268,268,268,252, \ 50 252,265,251,268,268,268,266,265,267,268,268,268,268,268,268,268, \ 51 268,267,268,268,268,268,268,267,268,306,306,306,306,268,306,306, \ 52 306,305,305,306,306,268,306,306,305,305,306,306,306,330,306,306, \ 53 306,306,306,306,306,306,330,306,306,306,306,330,330,330,330,306, \ 54 329,330,330,330,328,329,330,330,354,329,330,329,330,330,354,330, \ 55 330,354,329,330,330,354,330,352,354,329,354,330,354,330,330,354, \ 56 354,329,354,330,360,330,330,354,352,354,378,371,378,377,354,378, \ 57 378,402,354,402,378,378,378,401,402,378,402,378,354,401,377,378, \ 58 377,378,402,401,378,378,378,402,401,402,402,402,401,401,402,402, \ 59 401,402,401,402,402,402,402,402,402,402,402,402,402,402,401,402, \ 60 402,401,402,402,401,402,402,401,402,402,402,402,402,402,402,402, \ 61 402,401,402,402,402,401,402,439,439,440,402,440,402,402,426,439, \ 62 439,440,440,440,426,426,426,438,439,440,472,439,471,440,440,472, \ 63 472,440,440,440,471,439,472,440,472,472,472,440,470,472,471,472, \ 64 470,472,504,470,472,472,469,472,496,472,472,472,471,502,472,472, \ 65 471,472,471,504,472,472,472,472,480,504,472,496,503,503,504,504, \ 66 503,503,472,504,504,472,496,503,502,472,504,496,472,504,503,472, \ 67 504,496,504,504,503,536,470,536,472,536,535,535,536,534,504,536, \ 68 536,503,504,536,536,544,536,503,504,536,535,503,480,504,504,536, \ 69 535,568,568,504,568,568,568,544,568,536,535,568,568,535,504,535, \ 70 568,568,568,536,504,567,544,568,568,536,544,567,544,544,568,584, \ 71 544,568,560,568,600,559,568,584,583,568,568,600,599,567,568,567, \ 72 568,567,568,567,600,568,568,599,599,568,584,568,567,568,599,568, \ 73 567,568,567,600,600,568,600,584,568,599,599,568,600,568,600,599, \ 74 608,599,600,568,600,600,568,600,600,568,568,598,599,600,599,600, \ 75 600,600,600,664,664,600,632,584,600,664,663,600,664,600,632,663, \ 76 663,631,632,600,600,600,600,664,600,656,599,664,600,600,656,600, \ 77 600,664,664,664,664,663,663,663,664,664,664,664,663,664,662,663, \ 78 664,663,664,664,664,632,632,663,664,663,664,632,664,664,664,664, \ 79 664,664,663,664,664,664,662,664,663,664,664,664,664,663,663,664, \ 80 664,664,662,663,663,664,664,664,664,664,662,663,664,664,664,664, \ 81 664,664,664,664,663,664,664,664,664,664,663,664,663,664,664,664, \ 82 663,664,664,687,688,662,663,664,664,663,664,734,664,664,688,736, \ 83 736,664,664,664,664,663,664,663,664,736,735,664,664,663,736,733, \ 84 736,734,735,736,736,735,736,735,736,736,736,784,736,784,784,736, \ 85 736,784,735,736,736,783,736,783,736,736,736,735,784,784,736,736, \ 86 735,784,736,784,736,784,784,736,784,784,784,784,784,783,784,783, \ 87 783,783,784,784,784,784,784,784,784,783,824,784,782,831,832,783, \ 88 824,831,832,832,832,784,784,831,784,784,784,784,784,824,831,824, \ 89 823,824,824,824,824,824,831,832,824,822,824,832,824,824,832,823, \ 90 832,832,831,831,832,832,832,832,832,856,822,832,832,832,824,856, \ 91 824,824,832,832,824,832,856,831,832,832,856,831,832,856,832,830 \ 92 93 #define MPFR_SQRHIGH_TAB \ 94 -1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,8,9,10, \ 95 11,12,13,11,13,12,13,14,15,14,15,16,16,18,17,19, \ 96 19,18,19,19,20,20,22,23,23,22,23,24,25,25,26,27, \ 97 28,30,30,27,28,29,30,31,32,33,38,40,40,42,42,44, \ 98 40,40,42,42,44,44,42,42,44,42,50,50,42,46,50,44, \ 99 46,44,46,46,50,48,50,50,50,50,48,54,50,54,50,50, \ 100 54,50,54,54,54,62,60,53,54,54,56,56,58,56,60,58, \ 101 58,60,60,62,62,60,76,62,76,68,72,66,68,72,76,72, \ 102 72,72,76,76,76,80,80,80,76,80,80,88,84,80,84,88, \ 103 84,92,88,88,92,92,88,88,80,92,96,92,92,87,96,96, \ 104 100,100,100,100,96,100,96,104,96,104,100,100,100,100,108,100, \ 105 96,100,104,103,104,104,100,100,104,104,104,104,104,108,108,99, \ 106 100,108,108,100,112,100,106,123,108,108,128,123,112,129,112,108, \ 107 129,135,134,135,128,129,138,135,123,141,135,127,128,141,129,147, \ 108 128,141,134,135,135,141,138,139,135,141,138,141,135,153,146,147, \ 109 147,153,141,141,147,153,141,150,135,147,147,159,147,147,147,159, \ 110 135,141,135,146,147,165,146,147,159,152,147,147,147,147,146,158, \ 111 151,147,153,146,147,157,153,153,188,159,159,188,188,164,164,195, \ 112 196,160,180,187,188,180,187,188,180,188,188,165,187,188,196,188, \ 113 188,180,188,196,188,188,195,188,187,188,188,196,196,188,195,196, \ 114 196,195,196,195,196,196,195,196,196,188,211,203,212,195,196,196, \ 115 196,196,212,211,211,195,196,220,220,212,220,225,212,196,216,220, \ 116 216,220,220,195,196,196,220,220,196,220,228,203,212,212,212,212, \ 117 211,212,212,212,212,212,212,220,212,219,220,220,220,220,212,228, \ 118 227,220,228,228,228,228,228,212,212,228,227,211,228,236,276,219, \ 119 220,228,212,219,220,244,219,219,244,244,220,227,228,228,244,227, \ 120 282,244,294,270,264,282,269,276,264,270,294,276,282,270,270,276, \ 121 276,276,282,270,270,276,281,276,282,282,282,282,276,282,294,282, \ 122 282,294,270,294,282,294,282,294,294,294,294,294,276,282,282,282, \ 123 276,294,282,282,294,282,282,294,306,294,294,294,312,294,294,294, \ 124 294,294,294,294,317,318,318,294,293,318,294,306,306,318,330,324, \ 125 324,330,318,306,330,312,318,318,324,324,318,324,324,330,317,330, \ 126 324,323,324,318,318,330,330,329,329,330,330,318,324,329,329,330, \ 127 336,330,329,330,324,342,354,342,318,324,354,342,341,348,348,318, \ 128 330,354,354,342,318,368,354,376,368,354,375,330,376,392,392,376, \ 129 330,376,376,376,368,392,392,392,384,392,392,392,392,392,392,392, \ 130 392,392,392,408,392,392,407,392,392,392,392,406,408,408,407,407, \ 131 408,392,408,416,408,392,424,408,375,376,376,408,408,424,376,423, \ 132 416,424,392,408,424,408,376,431,432,424,424,423,424,424,424,407, \ 133 432,424,392,431,432,392,432,424,407,440,392,440,440,440,408,432, \ 134 439,440,424,440,416,440,424,407,423,424,424,424,424,456,424,424, \ 135 432,423,424,432,416,424,432,423,424,423,440,424,424,424,424,439, \ 136 440,472,424,424,424,424,440,439,440,456,440,456,438,408,456,440, \ 137 424,440,424,456,464,488,456,424,456,456,424,439,424,472,472,479, \ 138 456,456,432,480,480,455,480,440,472,488,480,488,440,440,464,440, \ 139 488,439,488,488,488,488,456,487,488,488,488,456,432,487,504,488, \ 140 480,456,488,488,487,488,488,487,488,520,520,520,488,520,520,439, \ 141 480,472,480,479,456,487,488,488,496,487,472,488,488,520,520,488, \ 142 520,488,520,520,496,488,520,488,488,504,488,520,440,600,536,600, \ 143 456,520,536,536,600,600,568,567,600,600,568,599,600,600,600,599, \ 144 598,600,600,568,599,600,568,600,600,599,600,600,600,568,568,599, \ 145 600,600,600,600,599,600,600,599,600,599,600,600,599,599,600,599, \ 146 599,599,600,600,600,599,600,600,599,599,600,600,632,600,600,600, \ 147 664,599,600,600,600,600,600,600,631,632,632,632,600,632,632,599, \ 148 663,664,624,631,632,632,664,662,663,664,664,632,632,664,632,663, \ 149 664,631,664,662,662,664,664,662,664,663,664,663,663,663,664,664, \ 150 664,662,663,664,664,664,664,663,664,663,664,664,664,664,664,663, \ 151 664,632,663,664,664,663,664,664,664,631,664,663,696,696,696,664, \ 152 600,664,664,662,664,664,664,664,664,663,664,663,664,664,663,664, \ 153 664,663,664,664,632,664,664,663,664,663,664,663,664,664,728,663, \ 154 664,727,663,664,664,663,664,664,696,632,728,728,663,663,664,696, \ 155 664,664,696,728,664,664,728,728,696,663,664,663,728,664,664,655, \ 156 696,663,664,661,664,695,696,663,656,728,664,663,664,663,664,664, \ 157 696,664,663,663,664,695,696,664,664,695,696,662,664,663,664,663 \ 158 159 #define MPFR_DIVHIGH_TAB \ 160 0,0,0,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,20,23,23,23,23,24,23,24,25,27,27, /*32-47*/ \ 163 27,27,31,29,32,29,30,30,32,31,33,31,35,35,36,35, /*48-63*/ \ 164 36,36,42,42,37,41,41,45,42,42,46,43,44,45,42,45, /*64-79*/ \ 165 44,45,49,47,46,49,50,54,50,56,51,56,56,58,54,56, /*80-95*/ \ 166 60,54,56,59,55,58,54,56,63,60,62,56,60,66,64,66, /*96-111*/ \ 167 63,62,67,68,62,66,64,68,68,72,67,70,67,68,66,67, /*112-127*/ \ 168 70,68,74,83,72,70,83,76,84,84,83,84,84,84,82,82, /*128-143*/ \ 169 84,84,84,87,84,84,84,82,84,84,84,86,84,88,91,92, /*144-159*/ \ 170 88,98,99,84,88,91,90,104,87,99,96,94,100,100,92,94, /*160-175*/ \ 171 92,92,112,105,100,104,100,100,104,104,104,104,112,112,104,105, /*176-191*/ \ 172 99,112,112,103,104,111,112,112,104,104,112,112,111,112,112,112, /*192-207*/ \ 173 111,111,112,128,112,128,111,112,116,120,120,116,120,118,118,128, /*208-223*/ \ 174 127,128,128,120,136,136,136,128,135,136,136,132,136,130,128,136, /*224-239*/ \ 175 128,136,136,136,126,136,136,136,135,136,136,136,136,136,136,136, /*240-255*/ \ 176 136,136,136,136,144,148,168,136,144,136,168,143,142,144,150,143, /*256-271*/ \ 177 168,168,143,168,167,167,168,176,176,166,168,171,168,168,172,168, /*272-287*/ \ 178 168,176,168,167,168,176,176,176,176,168,176,176,176,172,176,175, /*288-303*/ \ 179 176,176,175,176,176,176,174,175,176,168,168,167,168,168,168,183, /*304-319*/ \ 180 175,176,176,176,168,176,176,173,176,175,176,176,174,175,175,171, /*320-335*/ \ 181 176,184,198,176,176,184,175,175,208,186,186,198,208,184,186,177, /*336-351*/ \ 182 208,208,208,209,207,208,209,184,192,197,208,184,192,208,192,208, /*352-367*/ \ 183 224,192,222,198,208,196,198,198,210,207,222,216,208,222,222,222, /*368-383*/ \ 184 198,198,210,207,224,208,222,222,224,208,224,222,224,224,222,208, /*384-399*/ \ 185 210,216,222,222,208,216,222,222,208,224,224,224,222,224,224,228, /*400-415*/ \ 186 224,223,224,224,240,224,240,222,248,224,224,222,240,256,240,224, /*416-431*/ \ 187 256,257,222,255,224,228,224,256,240,256,240,255,256,255,256,240, /*432-447*/ \ 188 256,255,256,257,256,252,256,256,256,256,256,256,264,256,255,256, /*448-463*/ \ 189 257,272,256,255,272,270,256,256,272,256,240,257,288,272,252,254, /*464-479*/ \ 190 257,256,256,257,256,270,272,255,256,256,267,256,256,255,254,256, /*480-495*/ \ 191 255,256,257,268,264,269,256,255,256,256,288,256,269,270,267,336, /*496-511*/ \ 192 272,272,272,267,270,264,272,269,288,270,288,288,288,272,272,337, /*512-527*/ \ 193 288,336,336,335,288,352,336,334,286,344,288,296,344,288,288,293, /*528-543*/ \ 194 288,304,336,336,336,336,336,336,336,288,336,336,304,352,352,336, /*544-559*/ \ 195 336,336,336,336,336,336,336,336,336,343,344,340,336,335,336,336, /*560-575*/ \ 196 336,336,336,336,342,336,336,336,336,344,352,336,342,335,336,335, /*576-591*/ \ 197 336,352,344,344,352,352,352,344,352,352,336,351,350,352,352,352, /*592-607*/ \ 198 352,352,341,336,352,335,336,336,352,335,336,344,336,336,334,336, /*608-623*/ \ 199 336,343,336,344,344,344,352,344,352,336,344,335,352,343,351,344, /*624-639*/ \ 200 344,341,342,352,344,351,352,336,352,336,352,344,336,336,341,344, /*640-655*/ \ 201 336,336,344,336,352,336,352,342,352,344,344,344,347,344,344,341, /*656-671*/ \ 202 344,352,353,352,352,351,352,359,352,351,352,352,352,352,352,352, /*672-687*/ \ 203 352,349,350,351,352,367,368,352,357,352,352,352,360,352,353,353, /*688-703*/ \ 204 391,408,408,360,368,388,384,368,392,408,400,416,416,384,392,367, /*704-719*/ \ 205 384,408,408,416,408,408,408,392,392,416,416,408,416,415,408,415, /*720-735*/ \ 206 416,416,412,408,414,420,448,417,408,408,416,408,408,413,416,408, /*736-751*/ \ 207 416,408,415,415,416,431,416,416,416,392,448,415,416,432,416,444, /*752-767*/ \ 208 416,448,408,416,416,416,408,408,448,444,416,416,416,416,408,416, /*768-783*/ \ 209 408,448,414,415,416,417,418,448,444,416,416,406,416,416,414,432, /*784-799*/ \ 210 448,448,416,416,432,448,416,432,448,444,438,448,448,416,448,416, /*800-815*/ \ 211 444,448,444,448,416,432,416,416,416,432,416,448,448,416,432,448, /*816-831*/ \ 212 444,448,444,448,447,466,448,432,432,448,448,432,448,448,440,444, /*832-847*/ \ 213 454,432,448,480,438,447,504,432,448,448,448,448,448,447,448,447, /*848-863*/ \ 214 448,446,448,444,443,448,444,448,446,448,448,503,536,448,448,448, /*864-879*/ \ 215 448,448,448,448,448,447,450,448,514,448,512,480,448,512,480,454, /*880-895*/ \ 216 512,500,504,476,480,536,536,536,504,536,480,504,504,480,536,504, /*896-911*/ \ 217 480,504,504,504,480,504,512,480,480,512,480,512,512,480,478,536, /*912-927*/ \ 218 480,489,504,513,536,504,511,479,480,480,534,511,511,512,536,512, /*928-943*/ \ 219 512,504,504,504,504,504,504,512,511,509,512,512,504,511,544,504, /*944-959*/ \ 220 544,504,512,544,544,536,512,504,543,511,512,513,540,511,511,504, /*960-975*/ \ 221 544,511,508,504,512,536,536,504,504,512,536,544,504,544,512,536, /*976-991*/ \ 222 535,512,512,541,504,536,536,536,536,504,544,511,544,511,544,512, /*992-1007*/ \ 223 511,512,544,514,544,535,544,544,544,536,536,536,536,536,544,544 /*1008-1023*/ \ 224 225 #define MPFR_MUL_THRESHOLD 13 /* limbs */ 226 #define MPFR_SQR_THRESHOLD 18 /* limbs */ 227 #define MPFR_DIV_THRESHOLD 3 /* limbs */ 228 #define MPFR_EXP_2_THRESHOLD 522 /* bits */ 229 #define MPFR_EXP_THRESHOLD 6920 /* bits */ 230 #define MPFR_SINCOS_THRESHOLD 28160 /* bits */ 231 #define MPFR_AI_THRESHOLD1 -24100 /* threshold for negative input of mpfr_ai */ 232 #define MPFR_AI_THRESHOLD2 2303 233 #define MPFR_AI_THRESHOLD3 37484 234 /* Tuneup completed successfully, took 787 seconds */ 235