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 4.8.5 */ 23 /* generated on gcc110.fsffrance.org (POWER7) with GMP 6.1.2, 24 where GMP uses -m64 -mtune=power7 -O3 */ 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,19,19,19, \ 29 21,21,22,24,24,24,24,24,24,24,24,24,30,30,32,42, \ 30 30,34,34,34,34,38,38,32,32,32,40,40,52,40,42,42, \ 31 42,52,52,52,52,48,48,48,48,52,52,52,52,52,52,52, \ 32 52,52,52,52,52,52,56,52,52,60,60,60,60,60,64,60, \ 33 64,68,68,68,68,68,68,68,68,75,68,74,68,78,75,74, \ 34 75,68,75,86,78,87,87,87,93,93,87,87,87,93,87,87, \ 35 87,99,86,87,87,87,99,90,92,93,84,99,99,74,93,99, \ 36 99,99,98,126,99,99,99,99,102,102,102,104,104,108,110,110, \ 37 108,111,111,114,114,117,117,117,117,117,122,123,123,123,123,123, \ 38 123,123,126,128,128,123,141,153,123,141,141,141,138,141,141,152, \ 39 153,153,120,153,152,153,153,153,152,162,153,117,153,153,153,153, \ 40 153,153,128,153,153,152,153,153,153,152,153,153,153,153,153,156, \ 41 156,152,153,153,153,153,153,153,153,153,153,153,153,153,153,177, \ 42 177,177,177,153,176,216,153,177,204,153,204,177,168,204,204,168, \ 43 204,204,204,204,204,177,204,204,204,204,204,204,202,204,204,204, \ 44 204,204,204,202,203,204,204,204,204,204,204,204,204,204,204,204, \ 45 204,204,203,204,204,204,204,204,204,204,204,204,204,204,204,204, \ 46 236,204,204,234,204,204,203,236,236,236,236,236,236,236,236,236, \ 47 236,236,235,236,235,236,236,236,236,236,236,236,236,236,236,236, \ 48 236,236,236,236,236,236,268,268,236,268,236,268,268,268,268,268, \ 49 268,268,268,266,267,268,267,268,268,268,268,268,267,268,268,268, \ 50 268,268,267,268,268,306,306,306,306,304,305,306,306,336,306,306, \ 51 236,305,306,306,306,306,306,306,306,306,306,306,306,306,306,306, \ 52 306,306,306,306,306,306,306,306,306,306,306,306,306,306,305,306, \ 53 306,306,306,306,306,306,306,306,330,306,306,305,306,306,306,305, \ 54 306,306,306,306,354,306,354,354,353,306,353,354,354,354,354,354, \ 55 354,354,353,354,354,354,353,354,354,354,354,354,354,354,354,354, \ 56 424,354,354,354,354,354,353,354,354,354,352,408,354,354,354,354, \ 57 354,408,408,354,408,408,408,407,408,408,408,408,408,408,407,408, \ 58 408,408,408,408,402,408,402,402,407,408,408,408,408,408,408,407, \ 59 408,408,408,408,408,408,408,408,408,408,408,408,408,408,408,408, \ 60 406,407,408,408,408,408,408,408,408,406,408,408,408,408,407,408, \ 61 408,408,407,408,408,407,408,408,408,408,408,407,407,408,408,408, \ 62 408,408,408,472,472,472,472,472,472,472,472,472,472,472,472,472, \ 63 472,472,472,472,472,472,472,472,471,472,472,472,472,472,472,472, \ 64 470,471,472,472,472,472,472,472,472,472,472,472,472,472,472,472, \ 65 472,472,471,472,472,470,472,472,472,472,470,471,472,472,472,472, \ 66 472,472,472,472,536,536,536,536,535,536,535,536,536,536,535,536, \ 67 536,536,536,535,536,536,536,534,535,536,536,536,536,536,536,536, \ 68 536,535,536,536,536,536,536,536,536,536,535,536,536,536,536,536, \ 69 536,536,535,535,536,535,536,536,536,536,536,535,536,536,536,536, \ 70 536,536,536,535,536,536,536,536,536,536,536,536,536,591,536,536, \ 71 536,536,592,590,536,591,592,592,592,591,591,592,592,591,592,592, \ 72 592,591,591,592,592,592,592,592,592,592,591,592,592,590,590,592, \ 73 592,592,590,591,592,592,592,592,592,592,592,592,592,592,592,592, \ 74 591,592,592,592,592,591,592,592,616,592,592,591,591,616,592,592, \ 75 592,592,616,616,616,592,616,616,592,616,592,616,640,616,616,591, \ 76 592,592,589,592,640,591,592,616,688,688,592,688,688,687,688,686, \ 77 688,688,688,688,687,688,688,688,686,687,688,688,688,687,688,688, \ 78 688,686,688,688,688,615,688,685,688,688,687,688,688,687,688,688, \ 79 688,688,686,687,688,688,688,688,688,688,688,688,688,687,687,688, \ 80 688,688,688,688,688,688,688,688,688,686,687,688,688,688,688,688, \ 81 688,688,712,736,736,688,686,736,688,736,688,736,687,735,736,736, \ 82 688,736,734,735,736,688,688,736,688,736,688,687,687,688,688,688, \ 83 688,736,736,688,688,736,736,736,736,736,784,736,688,736,736,782, \ 84 783,784,783,784,784,784,784,776,784,784,783,784,784,782,783,784, \ 85 784,784,784,783,784,784,783,784,784,784,784,784,784,784,784,784, \ 86 783,784,784,784,783,783,784,784,784,784,784,784,784,784,784,784, \ 87 784,784,784,783,784,784,783,783,784,784,784,782,783,784,784,783, \ 88 784,784,783,784,783,784,784,784,784,783,784,783,784,784,784,784, \ 89 784,784,783,784,784,783,784,784,784,783,784,784,784,784,784,783, \ 90 782,783,784,784,784,784,784,784,784,784,783,784,784,784,784,784 \ 91 92 #define MPFR_SQRHIGH_TAB \ 93 -1,0,-1,0,0,0,-1,-1,-1,7,8,-1,10,11,11,11, \ 94 11,11,11,11,13,13,13,13,15,15,15,15,16,17,19,19, \ 95 19,19,19,19,21,22,23,23,23,23,24,25,27,27,25,29, \ 96 27,27,29,29,31,31,31,31,31,38,38,38,38,38,38,38, \ 97 38,36,36,38,38,38,38,38,42,42,44,42,46,44,46,44, \ 98 45,46,46,46,46,46,50,54,50,50,52,52,54,54,54,50, \ 99 52,52,54,54,52,52,54,54,54,54,56,58,60,60,60,62, \ 100 60,62,62,64,64,64,76,75,76,76,76,72,75,76,76,76, \ 101 76,76,76,76,84,84,76,76,84,88,88,88,88,92,92,92, \ 102 92,92,92,84,92,76,92,92,88,92,92,92,88,90,92,92, \ 103 92,88,92,92,91,91,92,92,91,92,92,92,92,92,92,92, \ 104 92,92,95,111,111,111,111,110,111,111,111,111,111,111,111,111, \ 105 111,111,111,111,111,114,111,114,117,116,111,110,121,116,129,129, \ 106 134,135,135,135,129,135,192,135,135,135,135,135,135,135,135,135, \ 107 135,135,141,135,129,129,129,135,135,135,135,135,135,134,135,141, \ 108 140,141,141,135,144,135,160,184,147,141,147,153,147,152,153,159, \ 109 153,159,159,159,159,159,159,165,159,159,159,159,159,165,164,159, \ 110 159,159,158,159,159,159,177,171,177,159,159,177,158,177,159,159, \ 111 159,158,159,159,159,171,171,159,159,171,171,159,177,177,171,171, \ 112 177,174,177,159,177,177,171,177,176,177,171,171,177,177,176,171, \ 113 177,177,177,175,176,177,177,176,177,177,204,204,196,196,204,212, \ 114 204,188,212,212,196,196,211,212,212,212,212,212,212,212,211,212, \ 115 204,204,212,212,212,212,212,211,212,212,212,212,212,220,220,236, \ 116 220,220,220,228,228,228,220,236,228,228,228,236,236,244,234,235, \ 117 236,236,236,236,244,244,236,243,244,244,244,244,244,244,244,236, \ 118 244,244,227,236,243,236,244,236,236,236,244,244,244,244,244,244, \ 119 244,244,244,244,244,244,220,219,220,244,228,220,236,236,228,233, \ 120 236,235,236,236,236,240,236,244,236,236,244,244,242,243,244,243, \ 121 244,244,244,244,244,244,243,244,244,236,244,244,244,318,318,244, \ 122 244,244,318,318,318,270,244,318,244,244,270,270,270,270,318,318, \ 123 318,318,318,318,282,318,318,318,318,318,318,318,318,318,318,318, \ 124 294,293,294,318,294,294,305,306,306,306,294,305,306,317,306,306, \ 125 306,306,318,318,318,318,318,317,318,317,318,318,318,318,318,318, \ 126 330,318,318,317,306,318,318,317,318,318,318,318,342,342,342,318, \ 127 318,318,318,408,318,318,318,330,354,342,318,318,354,353,354,354, \ 128 354,354,342,354,353,354,354,360,342,354,342,354,353,342,354,354, \ 129 342,341,342,353,354,354,354,353,354,354,354,354,354,354,354,354, \ 130 354,354,354,360,360,376,392,318,423,424,391,424,376,376,392,376, \ 131 392,391,408,392,376,392,408,423,424,424,392,424,423,424,424,424, \ 132 424,354,424,408,424,424,424,424,424,424,408,424,424,423,408,424, \ 133 424,408,424,424,424,424,424,424,424,423,424,424,424,424,424,424, \ 134 424,439,423,424,424,424,424,424,424,424,440,440,424,439,423,424, \ 135 600,439,423,424,456,424,424,472,424,424,456,456,456,423,424,424, \ 136 456,424,424,472,472,472,424,424,424,471,472,424,424,424,424,424, \ 137 424,424,472,472,488,424,423,424,424,424,488,488,488,439,488,487, \ 138 440,440,440,488,488,488,472,440,456,440,472,456,455,455,472,472, \ 139 456,456,456,472,456,472,472,472,472,488,488,471,471,486,472,472, \ 140 472,472,472,472,472,471,472,472,472,472,471,488,488,488,488,488, \ 141 488,504,488,504,600,391,488,752,488,488,488,408,568,488,488,488, \ 142 488,488,488,487,488,488,488,488,488,488,488,488,488,472,472,488, \ 143 488,488,488,599,488,600,600,488,488,488,599,600,600,599,600,488, \ 144 600,600,599,600,600,600,600,600,600,600,600,600,600,600,600,599, \ 145 598,599,600,600,600,599,600,600,600,600,616,600,424,568,568,568, \ 146 568,584,568,600,598,568,600,568,431,824,600,600,600,599,600,600, \ 147 600,600,600,600,-1,784,600,600,600,599,595,600,600,440,600,600, \ 148 600,600,600,600,600,599,600,600,600,600,597,600,600,600,600,600, \ 149 600,600,600,597,600,600,600,600,600,600,600,600,599,600,599,600, \ 150 600,600,600,599,600,600,599,600,600,600,600,598,662,600,600,600, \ 151 600,600,600,600,599,599,600,600,664,600,600,599,600,664,664,663, \ 152 664,664,664,600,664,664,664,664,664,664,600,664,664,664,664,664, \ 153 600,600,600,664,600,663,600,600,600,600,664,600,600,600,696,664, \ 154 696,598,600,600,600,664,600,600,664,664,600,600,600,600,600,600, \ 155 600,600,728,728,600,728,728,728,728,600,725,727,727,728,727,728, \ 156 727,728,728,727,728,728,728,728,728,728,728,728,727,728,728,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,41, /*64-79*/ \ 164 42,42,0,0,48,48,0,46,48,48,50,49,49,48,49,50, /*80-95*/ \ 165 51,0,0,0,79,52,0,0,0,54,57,68,60,58,0,59, /*96-111*/ \ 166 58,59,62,0,60,66,68,66,68,68,68,66,66,68,68,68, /*112-127*/ \ 167 76,68,76,68,68,69,75,76,70,79,73,84,76,75,78,76, /*128-143*/ \ 168 81,84,80,80,84,81,80,84,84,80,80,81,80,84,84,85, /*144-159*/ \ 169 84,83,104,96,84,96,96,92,96,96,96,132,104,100,98,104, /*160-175*/ \ 170 104,104,104,104,104,104,104,104,104,104,104,104,104,104,100,100, /*176-191*/ \ 171 104,104,112,104,100,120,120,104,104,119,112,112,118,104,120,120, /*192-207*/ \ 172 112,120,118,118,119,120,113,114,119,112,128,136,112,120,116,122, /*208-223*/ \ 173 118,132,120,119,120,136,118,120,119,120,128,136,128,136,132,136, /*224-239*/ \ 174 132,128,136,135,136,132,128,136,130,136,136,132,135,135,136,132, /*240-255*/ \ 175 132,136,136,134,135,135,136,149,135,136,135,136,136,136,138,140, /*256-271*/ \ 176 156,150,156,148,150,149,161,150,148,162,160,148,156,160,150,152, /*272-287*/ \ 177 157,150,168,160,160,150,150,152,160,160,168,168,168,156,156,160, /*288-303*/ \ 178 156,161,160,168,160,160,160,162,168,160,160,167,168,166,174,173, /*304-319*/ \ 179 167,168,198,192,168,168,174,192,168,192,168,168,168,168,184,192, /*320-335*/ \ 180 192,194,208,193,192,192,192,192,208,192,192,208,197,206,204,208, /*336-351*/ \ 181 192,207,200,204,204,191,192,208,204,208,192,208,208,208,208,209, /*352-367*/ \ 182 208,208,208,208,208,216,192,208,192,209,192,198,208,206,204,208, /*368-383*/ \ 183 208,208,208,207,208,208,216,208,208,216,208,208,208,208,206,208, /*384-399*/ \ 184 208,206,207,222,206,208,208,208,208,209,208,207,240,208,209,223, /*400-415*/ \ 185 240,233,240,220,234,216,240,240,219,233,240,222,222,224,224,232, /*416-431*/ \ 186 240,240,239,240,236,240,240,240,240,241,240,238,240,240,240,240, /*432-447*/ \ 187 300,240,245,239,240,240,233,240,236,240,240,240,240,240,241,236, /*448-463*/ \ 188 240,426,240,240,240,256,240,240,240,240,239,240,270,272,241,241, /*464-479*/ \ 189 256,246,245,256,246,245,257,272,246,256,256,272,264,272,272,268, /*480-495*/ \ 190 256,256,272,255,272,264,256,270,270,272,272,272,269,256,304,272, /*496-511*/ \ 191 268,300,306,300,272,304,300,299,264,300,294,270,270,490,272,300, /*512-527*/ \ 192 272,272,272,300,306,300,301,298,304,300,300,312,298,304,304,306, /*528-543*/ \ 193 300,299,306,312,336,312,300,298,298,300,300,318,288,299,282,305, /*544-559*/ \ 194 304,298,304,305,299,303,300,300,300,304,304,312,312,306,306,299, /*560-575*/ \ 195 304,312,312,312,300,312,324,304,529,299,300,318,306,312,336,304, /*576-591*/ \ 196 300,300,300,306,312,312,312,332,305,336,336,384,336,312,324,312, /*592-607*/ \ 197 316,312,348,312,312,328,312,353,336,320,336,336,336,318,336,332, /*608-623*/ \ 198 335,348,336,336,328,324,335,336,336,322,335,336,336,336,324,328, /*624-639*/ \ 199 384,384,384,336,384,336,336,336,336,336,336,384,336,342,335,384, /*640-655*/ \ 200 336,336,384,335,384,336,336,383,335,408,335,408,336,384,408,384, /*656-671*/ \ 201 408,408,407,384,384,408,416,384,384,408,408,384,408,408,408,408, /*672-687*/ \ 202 408,408,384,408,408,408,408,408,416,408,416,408,408,408,408,416, /*688-703*/ \ 203 408,384,408,416,416,408,408,408,408,408,408,407,408,408,416,384, /*704-719*/ \ 204 408,407,408,408,384,383,406,407,407,416,384,415,416,408,416,408, /*720-735*/ \ 205 407,416,408,408,416,406,384,384,408,408,408,406,408,407,408,408, /*736-751*/ \ 206 384,408,408,408,408,416,408,408,408,416,415,408,384,408,415,408, /*752-767*/ \ 207 408,408,408,405,408,408,408,408,408,408,408,408,416,416,416,408, /*768-783*/ \ 208 416,416,406,416,408,414,407,408,407,407,414,408,408,408,416,408, /*784-799*/ \ 209 415,416,416,408,408,416,415,416,416,416,416,416,416,416,448,415, /*800-815*/ \ 210 416,472,416,416,415,416,415,480,416,416,416,480,440,416,480,448, /*816-831*/ \ 211 440,464,440,466,477,424,472,432,470,472,456,460,464,480,448,480, /*832-847*/ \ 212 440,480,480,480,472,464,480,464,480,472,467,480,480,479,480,480, /*848-863*/ \ 213 478,480,472,472,480,480,479,480,472,480,480,470,480,480,480,472, /*864-879*/ \ 214 480,468,464,470,472,472,476,480,480,472,478,478,480,480,877,472, /*880-895*/ \ 215 480,479,480,480,512,480,479,480,756,466,472,480,466,464,478,466, /*896-911*/ \ 216 480,480,472,480,462,480,472,480,478,478,480,480,479,480,480,480, /*912-927*/ \ 217 488,480,478,472,480,480,488,480,480,480,480,472,480,480,480,536, /*928-943*/ \ 218 477,512,480,480,480,536,480,477,479,480,480,792,511,512,512,512, /*944-959*/ \ 219 493,512,501,512,527,512,528,536,488,536,512,536,512,512,535,528, /*960-975*/ \ 220 508,534,512,512,512,512,544,512,532,512,528,534,536,536,544,536, /*976-991*/ \ 221 535,540,528,528,610,536,528,528,609,612,608,536,544,612,544,536, /*992-1007*/ \ 222 540,536,612,536,607,536,612,610,610,612,612,612,612,544,612,611 /*1008-1023*/ \ 223 224 #define MPFR_MUL_THRESHOLD 9 /* limbs */ 225 #define MPFR_SQR_THRESHOLD 14 /* limbs */ 226 #define MPFR_DIV_THRESHOLD 3 /* limbs */ 227 #define MPFR_EXP_2_THRESHOLD 580 /* bits */ 228 #define MPFR_EXP_THRESHOLD 10480 /* bits */ 229 #define MPFR_SINCOS_THRESHOLD 22904 /* bits */ 230 #define MPFR_AI_THRESHOLD1 -12474 /* threshold for negative input of mpfr_ai */ 231 #define MPFR_AI_THRESHOLD2 1158 232 #define MPFR_AI_THRESHOLD3 20165 233 /* Tuneup completed successfully, took 571 seconds */ 234