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 7.3.0 */ 23 /* tomate.loria.fr Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz with GMP 6.1.2, 24 where GMP defines -mtune=haswell */ 25 26 #define MPFR_MULHIGH_TAB \ 27 -1,0,-1,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,24,26,28,28,28,28,28, \ 30 30,30,32,32,30,32,30,34,36,36,38,36,38,38,44,44, \ 31 44,44,44,44,44,48,44,44,48,44,48,52,52,48,56,56, \ 32 56,56,56,56,56,56,56,56,60,56,60,64,64,64,60,64, \ 33 64,68,64,64,64,64,72,68,68,72,63,72,64,64,68,64, \ 34 81,72,72,84,81,81,86,81,81,81,87,87,81,87,87,84, \ 35 80,84,87,90,87,86,93,87,92,93,93,96,96,93,96,93, \ 36 96,93,104,104,105,105,105,105,104,105,105,108,105,108,104,108, \ 37 104,108,111,104,117,108,114,116,116,116,117,114,116,129,117,114, \ 38 128,129,129,132,132,134,132,117,141,141,132,140,141,132,138,141, \ 39 141,141,141,144,140,141,138,141,144,144,141,144,141,141,140,141, \ 40 141,141,140,141,141,141,144,165,144,165,165,164,163,165,164,164, \ 41 164,168,165,168,164,164,164,165,165,164,165,168,168,165,164,165, \ 42 164,164,164,176,165,177,164,165,168,168,165,165,168,168,168,174, \ 43 177,176,177,177,177,189,188,189,177,180,177,180,189,187,188,188, \ 44 189,189,189,189,189,188,189,192,220,192,220,220,219,220,220,219, \ 45 220,219,220,220,220,219,220,220,219,220,220,219,220,219,220,220, \ 46 220,220,220,219,220,220,220,224,219,224,220,234,234,236,236,236, \ 47 236,235,235,240,235,236,236,236,236,236,235,236,236,251,235,236, \ 48 236,252,252,252,252,252,252,252,236,251,251,256,252,252,252,252, \ 49 250,251,252,252,251,252,251,252,284,252,264,280,251,252,252,284, \ 50 252,284,284,284,284,284,284,283,284,284,284,284,284,283,284,284, \ 51 283,284,284,282,284,284,283,306,306,306,306,306,306,330,330,330, \ 52 330,330,330,330,330,330,330,329,330,329,330,329,330,330,330,330, \ 53 330,330,330,330,330,330,330,330,330,330,330,330,330,330,330,330, \ 54 330,330,330,330,329,330,354,330,330,330,330,330,354,354,354,353, \ 55 354,354,354,353,354,330,354,354,330,354,354,330,330,354,330,378, \ 56 330,378,378,330,330,330,378,354,378,378,354,378,378,354,378,377, \ 57 378,378,377,378,354,354,354,354,354,354,354,378,354,354,378,378, \ 58 378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,440, \ 59 440,439,439,378,440,440,440,440,440,440,440,439,440,439,440,440, \ 60 439,440,440,440,440,440,440,440,440,440,440,440,440,439,440,439, \ 61 439,440,439,440,440,440,440,440,440,440,440,440,440,440,440,440, \ 62 440,440,440,440,440,440,439,440,440,440,440,440,440,440,439,440, \ 63 440,440,440,472,472,439,440,472,471,472,440,439,440,440,440,472, \ 64 472,440,472,472,471,472,472,472,472,472,472,472,472,472,472,472, \ 65 504,472,471,504,504,504,472,504,472,472,470,472,472,472,472,472, \ 66 504,472,472,504,504,504,503,504,504,504,504,503,504,504,503,504, \ 67 504,504,504,504,504,503,504,504,504,504,504,503,504,504,504,504, \ 68 504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \ 69 504,504,504,504,504,504,504,503,503,504,504,504,504,536,536,536, \ 70 568,504,568,568,567,568,568,568,567,568,568,567,568,568,568,568, \ 71 566,568,568,568,567,568,568,568,567,568,568,568,568,568,568,568, \ 72 568,568,568,568,568,568,568,568,567,568,568,568,568,568,568,568, \ 73 568,568,568,568,568,567,568,567,568,568,566,568,568,568,568,568, \ 74 640,568,640,639,640,640,568,568,640,640,640,640,640,640,640,640, \ 75 639,640,640,640,640,640,640,640,639,640,640,639,640,640,640,640, \ 76 640,639,640,640,640,640,640,640,640,640,640,638,640,640,640,640, \ 77 640,640,640,640,640,640,640,640,640,640,640,640,664,664,664,639, \ 78 639,640,664,640,640,639,640,639,640,640,640,639,640,640,640,640, \ 79 640,640,640,639,640,688,688,640,640,688,688,640,687,688,664,663, \ 80 640,664,688,688,688,688,663,664,736,663,664,664,663,664,712,664, \ 81 664,664,688,664,712,712,736,640,688,736,736,736,736,736,736,736, \ 82 688,736,736,736,736,736,736,736,735,736,736,736,736,736,736,736, \ 83 736,736,736,736,736,736,736,736,735,735,736,736,736,735,736,736, \ 84 735,736,736,736,735,736,736,735,735,736,735,736,736,736,735,736, \ 85 736,736,736,736,736,736,735,736,735,736,736,736,736,736,736,736, \ 86 736,736,735,736,736,736,736,736,736,736,736,736,736,736,735,736, \ 87 736,736,736,735,736,736,736,735,736,736,760,736,734,736,736,736, \ 88 832,736,784,760,830,760,832,760,736,832,832,832,736,832,832,832, \ 89 832,832,832,831,832,832,831,831,832,831,831,832,832,831,832,831, \ 90 832,832,832,832,832,831,736,831,832,832,832,832,832,831,831,832 \ 91 92 #define MPFR_SQRHIGH_TAB \ 93 -1,-1,-1,-1,-1,-1,-1,-1,-1,7,8,7,8,8,9,9, \ 94 10,10,12,12,12,12,13,13,14,15,15,16,17,17,18,19, \ 95 19,19,19,20,21,22,22,23,23,23,23,23,24,24,26,25, \ 96 26,27,28,27,29,29,31,29,31,30,33,32,33,33,33,33, \ 97 40,38,40,40,40,44,42,40,42,44,44,46,44,42,48,48, \ 98 48,48,50,52,50,50,48,50,50,52,52,56,54,56,58,55, \ 99 56,58,58,61,60,61,62,64,64,56,66,68,60,62,58,72, \ 100 72,76,76,76,76,72,80,80,80,72,76,76,76,76,76,80, \ 101 88,80,76,76,80,76,76,80,88,76,79,84,84,88,84,88, \ 102 85,88,92,92,84,92,92,90,91,92,96,92,94,92,94,100, \ 103 96,92,92,94,85,100,92,96,88,100,96,96,100,91,94,92, \ 104 100,94,95,96,98,96,101,100,100,117,100,100,112,100,104,108, \ 105 106,108,111,117,117,117,126,123,120,120,120,117,126,126,123,129, \ 106 128,128,128,128,126,131,128,129,132,129,132,135,129,137,136,135, \ 107 138,135,132,141,136,144,140,144,141,138,150,147,147,147,142,138, \ 108 146,138,147,144,144,150,152,144,147,147,147,162,156,164,165,162, \ 109 158,152,162,156,161,162,168,156,168,170,168,171,167,170,171,168, \ 110 174,175,174,171,159,164,170,170,150,183,176,176,168,168,177,180, \ 111 176,170,160,174,176,171,177,171,176,176,177,183,176,174,177,174, \ 112 174,177,176,183,176,177,180,177,180,175,176,183,195,180,194,182, \ 113 183,189,192,192,189,177,183,189,195,192,189,201,195,195,186,195, \ 114 201,201,201,200,200,198,225,219,224,225,204,213,213,225,213,222, \ 115 222,219,227,221,222,212,231,222,228,225,224,224,228,227,228,240, \ 116 225,219,225,228,228,224,224,227,237,227,228,228,225,225,225,228, \ 117 228,237,231,237,231,236,249,237,249,243,240,240,237,249,249,243, \ 118 249,237,261,260,261,261,249,260,249,248,261,249,261,261,261,261, \ 119 261,261,260,261,264,272,273,273,236,237,273,261,273,237,273,261, \ 120 273,273,273,273,264,240,273,261,273,261,273,273,273,273,261,248, \ 121 249,267,273,273,261,261,261,261,261,264,273,264,261,273,270,272, \ 122 273,272,273,276,273,272,273,267,273,273,272,276,285,285,285,285, \ 123 276,276,285,285,283,288,285,296,296,285,285,273,285,294,297,273, \ 124 297,297,296,273,309,297,273,285,297,296,285,308,309,272,285,297, \ 125 297,276,309,297,297,321,297,296,297,295,285,297,297,297,297,295, \ 126 297,297,309,297,309,309,297,296,321,295,307,321,321,312,348,309, \ 127 348,348,309,348,309,347,348,348,324,321,321,363,319,347,364,356, \ 128 363,348,333,363,361,348,348,364,364,347,348,362,364,364,380,346, \ 129 364,348,347,347,364,348,364,362,364,363,362,364,364,364,363,364, \ 130 364,371,364,364,364,363,364,364,363,380,363,377,372,380,380,364, \ 131 364,379,371,379,380,364,380,380,379,380,379,380,364,384,363,364, \ 132 395,396,395,396,380,395,380,378,396,396,378,396,387,396,396,395, \ 133 379,410,396,395,396,395,396,395,411,426,412,412,396,425,396,426, \ 134 412,409,410,411,410,450,425,426,394,450,462,419,426,410,431,426, \ 135 425,426,432,438,432,450,432,426,432,450,438,449,450,450,456,450, \ 136 432,456,456,450,450,461,462,456,474,450,462,450,450,450,474,474, \ 137 450,474,474,474,474,474,473,474,474,474,462,474,474,474,474,474, \ 138 546,474,474,474,474,474,474,474,486,498,498,498,498,474,497,497, \ 139 498,498,498,474,498,522,521,522,522,498,522,522,521,520,521,522, \ 140 522,521,522,522,522,522,522,522,522,522,522,522,522,522,522,522, \ 141 522,522,522,522,522,545,546,546,546,546,546,545,546,544,522,546, \ 142 546,546,567,568,520,567,522,545,567,546,568,545,568,568,568,546, \ 143 568,545,546,545,546,546,546,568,568,568,568,567,568,568,568,567, \ 144 568,568,568,568,568,568,584,568,567,568,600,568,568,599,600,600, \ 145 568,600,600,600,600,600,600,567,600,600,568,600,599,600,600,600, \ 146 600,600,600,600,600,600,600,600,600,600,600,600,600,600,632,600, \ 147 600,600,632,632,616,632,600,600,600,631,600,632,600,616,600,632, \ 148 632,600,600,632,632,600,632,600,632,600,600,600,600,600,600,599, \ 149 600,599,600,600,600,599,600,631,600,600,600,600,600,600,600,632, \ 150 599,640,600,600,600,632,632,600,600,632,632,631,632,632,632,630, \ 151 632,632,632,631,640,696,632,632,632,632,630,631,632,631,648,695, \ 152 632,695,696,695,632,631,632,647,648,648,648,696,695,696,696,712, \ 153 695,664,695,696,695,695,696,695,696,696,696,696,664,695,696,728, \ 154 712,727,728,727,696,728,664,663,696,664,664,728,728,664,696,696, \ 155 696,696,696,696,696,695,696,696,696,695,696,696,695,695,696,696, \ 156 695,696,695,695,695,696,696,696,696,728,726,728,728,728,727,728 \ 157 158 #define MPFR_DIVHIGH_TAB \ 159 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*0-15*/ \ 160 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*16-31*/ \ 161 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*32-47*/ \ 162 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*48-63*/ \ 163 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*64-79*/ \ 164 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*80-95*/ \ 165 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*96-111*/ \ 166 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*112-127*/ \ 167 68,68,0,0,75,69,0,0,71,78,72,73,74,72,78,74, /*128-143*/ \ 168 77,84,78,79,78,84,84,77,80,79,80,82,80,80,88,84, /*144-159*/ \ 169 84,84,83,93,84,91,86,92,90,88,92,90,90,94,96,95, /*160-175*/ \ 170 94,94,96,96,96,96,98,94,100,98,100,96,97,104,106,100, /*176-191*/ \ 171 98,98,102,106,102,106,106,112,109,103,112,112,110,104,112,111, /*192-207*/ \ 172 109,112,110,118,110,128,112,116,126,112,128,132,128,128,128,128, /*208-223*/ \ 173 124,127,128,122,129,128,125,126,127,125,128,127,128,125,136,128, /*224-239*/ \ 174 128,128,136,128,136,128,144,132,130,144,135,132,132,136,136,134, /*240-255*/ \ 175 142,144,144,134,144,137,136,150,135,143,136,146,140,144,144,142, /*256-271*/ \ 176 144,144,144,143,144,149,162,144,144,162,144,144,156,144,167,146, /*272-287*/ \ 177 148,150,162,150,155,150,150,158,154,156,162,168,164,160,168,162, /*288-303*/ \ 178 156,168,160,164,160,160,158,158,160,159,160,168,166,166,180,164, /*304-319*/ \ 179 168,168,184,180,165,174,174,174,172,179,174,174,190,185,186,180, /*320-335*/ \ 180 182,184,185,185,186,186,186,192,192,184,187,200,188,184,184,180, /*336-351*/ \ 181 196,180,184,186,186,198,192,189,185,186,192,184,191,186,196,186, /*352-367*/ \ 182 189,192,190,216,196,189,195,200,192,197,192,192,192,206,204,196, /*368-383*/ \ 183 200,214,210,207,216,198,216,210,198,216,214,216,216,208,216,216, /*384-399*/ \ 184 208,216,222,224,228,216,216,216,208,216,216,232,228,214,212,218, /*400-415*/ \ 185 216,216,218,220,214,216,221,228,220,224,218,224,220,216,224,232, /*416-431*/ \ 186 232,220,228,228,264,233,232,228,228,233,232,256,252,228,228,256, /*432-447*/ \ 187 232,264,232,264,256,254,256,232,264,255,252,257,258,264,268,276, /*448-463*/ \ 188 254,251,264,268,264,248,256,268,254,264,256,256,252,255,258,256, /*464-479*/ \ 189 256,257,264,252,264,256,268,272,256,267,256,276,272,287,272,264, /*480-495*/ \ 190 256,257,272,276,268,264,264,264,270,272,288,268,269,280,288,288, /*496-511*/ \ 191 280,284,282,288,276,288,279,288,288,281,286,288,280,272,272,280, /*512-527*/ \ 192 288,288,294,281,276,288,288,288,288,288,280,288,288,287,288,288, /*528-543*/ \ 193 284,288,288,287,288,291,288,288,288,288,324,324,287,288,287,312, /*544-559*/ \ 194 288,288,288,305,324,292,309,288,312,328,288,311,336,327,330,300, /*560-575*/ \ 195 318,330,312,336,327,321,324,336,330,324,335,327,335,336,336,336, /*576-591*/ \ 196 336,324,352,335,360,329,344,329,318,329,336,328,336,336,324,335, /*592-607*/ \ 197 323,336,336,336,336,328,336,325,360,324,336,328,316,335,336,332, /*608-623*/ \ 198 324,360,334,323,328,360,360,384,328,360,330,336,336,336,368,328, /*624-639*/ \ 199 335,371,336,335,372,372,335,336,372,336,336,348,330,356,360,370, /*640-655*/ \ 200 336,336,384,336,340,368,336,384,346,360,348,372,348,366,376,368, /*656-671*/ \ 201 340,347,368,360,384,384,372,348,384,376,368,360,384,344,369,384, /*672-687*/ \ 202 372,360,384,360,366,372,368,352,392,360,377,384,383,368,384,384, /*688-703*/ \ 203 384,384,372,369,384,383,384,376,382,364,376,384,378,376,384,384, /*704-719*/ \ 204 376,382,372,375,384,383,372,384,408,378,384,384,384,384,416,432, /*720-735*/ \ 205 384,384,432,419,384,424,384,440,417,440,392,380,408,376,424,378, /*736-751*/ \ 206 432,384,440,392,444,400,440,440,384,384,440,384,448,384,448,432, /*752-767*/ \ 207 448,432,432,432,416,440,440,400,440,440,438,432,432,432,448,440, /*768-783*/ \ 208 444,444,440,436,440,444,420,436,432,432,440,456,420,443,420,420, /*784-799*/ \ 209 456,432,431,432,424,432,464,440,432,466,432,448,456,463,460,448, /*800-815*/ \ 210 440,420,448,448,444,431,440,440,416,440,433,439,440,456,440,456, /*816-831*/ \ 211 434,454,432,432,431,440,440,440,464,428,428,436,440,440,432,440, /*832-847*/ \ 212 432,436,436,439,436,440,432,440,438,445,456,440,456,448,456,440, /*848-863*/ \ 213 456,464,464,440,456,448,451,440,447,512,440,440,446,446,448,456, /*864-879*/ \ 214 448,456,452,460,453,455,456,456,448,455,463,464,480,464,463,464, /*880-895*/ \ 215 480,452,480,528,466,468,456,457,480,467,464,468,504,504,460,467, /*896-911*/ \ 216 480,512,464,484,466,468,512,472,504,504,504,504,504,528,478,479, /*912-927*/ \ 217 504,480,504,520,504,520,504,504,512,512,472,512,512,528,512,512, /*928-943*/ \ 218 528,512,502,528,504,536,536,520,528,528,552,536,512,511,528,512, /*944-959*/ \ 219 536,560,512,512,488,528,512,536,552,528,512,576,560,560,576,576, /*960-975*/ \ 220 504,560,512,560,560,511,512,552,528,512,512,512,568,576,512,512, /*976-991*/ \ 221 512,528,528,568,528,512,504,576,576,528,512,576,544,504,576,512, /*992-1007*/ \ 222 512,536,528,560,528,540,536,576,568,536,544,536,536,576,527,544 /*1008-1023*/ \ 223 224 #define MPFR_MUL_THRESHOLD 12 /* limbs */ 225 #define MPFR_SQR_THRESHOLD 19 /* limbs */ 226 #define MPFR_DIV_THRESHOLD 3 /* limbs */ 227 #define MPFR_EXP_2_THRESHOLD 894 /* bits */ 228 #define MPFR_EXP_THRESHOLD 6522 /* bits */ 229 #define MPFR_SINCOS_THRESHOLD 23540 /* bits */ 230 #define MPFR_AI_THRESHOLD1 -14260 /* threshold for negative input of mpfr_ai */ 231 #define MPFR_AI_THRESHOLD2 1680 232 #define MPFR_AI_THRESHOLD3 24368 233 /* Tuneup completed successfully, took 342 seconds */ 234