1/* Various Thresholds of MPFR, not exported. -*- mode: C -*- 2 3Copyright 2005-2023 Free Software Foundation, Inc. 4 5This file is part of the GNU MPFR Library. 6 7The GNU MPFR Library is free software; you can redistribute it and/or modify 8it under the terms of the GNU Lesser General Public License as published by 9the Free Software Foundation; either version 3 of the License, or (at your 10option) any later version. 11 12The GNU MPFR Library is distributed in the hope that it will be useful, but 13WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 14or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 15License for more details. 16 17You should have received a copy of the GNU Lesser General Public License 18along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see 19https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc., 2051 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */ 21 22/* mparam tuned for coverage test */ 23 24#define MPFR_MULHIGH_TAB \ 25 -1,0,-1,-1,-1,-1,-1,-1,0,0,0,0,8,9,10,11, \ 26 10,11,12,13,0,13,14,13,14,15,16,17,16,16,18,19, \ 27 19,19,20,19,28,28,28,28,28,28,28,28,28,28,28,30, \ 28 32,32,32,32,34,34,36,34,36,36,36,36,36,40,38,38, \ 29 40,38,40,40,56,56,56,56,56,56,56,56,56,56,56,56, \ 30 56,56,56,56,56,56,56,56,60,56,60,64,64,64,56,56, \ 31 56,64,64,56,60,64,60,64,64,64,64,68,68,64,68,84, \ 32 84,86,84,84,87,84,87,84,87,84,84,84,84,84,84,84, \ 33 87,87,86,87,87,87,92,93,92,93,93,93,93,99,96,93, \ 34 99,99,99,99,99,98,99,99,102,99,105,104,105,105,108,108, \ 35 110,108,108,111,114,114,116,117,117, \ 36 117,117,117,124,124,124,124, \ 37 124,124,124,132,132,132,132,124,132,\ 38 132,132,132,132,132,132,132, \ 39 140,140,140,140,123,140,124,124,124,\ 40 124,132,128,132,132,132,132, \ 41 132,132,132,132,132,132,140,140,132,140,140,140,140,140,148,147, \ 42 140,148,148,147,148,148,148,156,148,156,156,156,156,156,156,155, \ 43 156,160,156,156,164,164,164,156,164,164,164,164,164,164,164,164, \ 44 164,217,220,220,220,220,220,220,220,220,220,220,220,220,220,220, \ 45 220,220,220,220,220,220,220,220,220,220,224,220,220,220,220,220, \ 46 220,220,220,220,220,220,220,220,220,224,220,220,220,224,220,220, \ 47 220,220,220,224,224,224,224,236,220,236,235,236,235,235,234,236, \ 48 236,235,236,236,235,236,236,236,236,236,236,252,236,251,236,251, \ 49 252,252,252,252,236,235,252,252,252,252,252,251,268,252,252,252, \ 50 268,251,268,268,252,252,268,268,268,268,267,268,268,268,267,268, \ 51 268,252,268,268,268,267,268,268,268,252,268,252,252,252,251,268, \ 52 252,268,252,268,268,268,268,268,267,268,268,268,268,268,268,268, \ 53 268,268,268,268,268,268,332,332,330,268,332,332,332,332,330,331, \ 54 332,332,332,332,344,331,344,344,344,344,344,332,342,332,344,332, \ 55 332,332,344,332,344,344,342,344,344,342,344,344,344,344,344,342, \ 56 344,344,344,344,344,344,344,368,344,342,344,344,368,344,344,344, \ 57 344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344, \ 58 344,344,368,344,344,368,344,363,368,367,368,368,368,368,368,366, \ 59 366,368,368,368,368,368,368,368,368,368,368,368,368,368,380,368, \ 60 368,368,368,368,368,392,392,392,392,392,392,392,392,392,392,392, \ 61 392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392, \ 62 392,391,392,392,392,392,392,416,392,416,416,416,416,412,416,392, \ 63 416,416,416,416,416,416,416,416,416,416,416,428,416,416,416,428, \ 64 416,440,416,480,480,480,480,480,480,480,504,503,504,504,504,504, \ 65 504,504,504,503,504,504,504,504,504,504,504,504,504,503,504,504, \ 66 480,504,504,504,504,504,504,480,504,488,504,504,504,504,504,504, \ 67 504,504,504,504,504,504,504,504,504,504,504,504,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,504,504,536,536,536,536,536,536,536, \ 70 536,536,536,536,535,536,536,536,536,536,536,536,536,535,536,536, \ 71 536,536,536,535,536,535,536,536,536,536,536,536,536,536,536,536, \ 72 536,568,536,536,536,536,536,536,568,536,535,536,536,536,536,536, \ 73 536,536,536,568,568,568,568,568,568,568,568,568,568,568,568,568, \ 74 568,568,568,568,568,568,568,568,568,664,664,664,664,664,664,664, \ 75 664,663,664,664,664,664,664,664,664,664,664,663,664,664,664,663, \ 76 664,663,664,664,664,664,664,664,664,663,664,664,664,663,664,664, \ 77 664,664,664,664,664,664,664,664,664,664,664,664,664,664,664,664, \ 78 664,664,664,663,664,664,664,664,664,664,664,663,664,664,664,664, \ 79 664,688,664,664,688,688,664,664,688,664,664,664,664,664,664,664, \ 80 664,680,688,688,688,688,688,688,688,688,688,688,688,688,688,688, \ 81 688,688,712,712,688,688,688,712,712,711,712,712,736,728,736,728, \ 82 728,728,736,728,736,736,736,736,728,736,736,736,728,736,736,736, \ 83 735,736,736,736,736,736,736,736,736,736,736,736,736,728,736,736, \ 84 728,736,736,736,736,735,736,736,735,736,736,736,736,735,736,736, \ 85 736,728,736,736,736,736,736,736,736,736,736,736,736,736,736,784, \ 86 736,784,783,736,784,735,784,735,784,735,736,736,736,736,736,736, \ 87 736,736,784,735,736,784,736,784,784,736,736,736,736,784,784,784, \ 88 784,784,784,783,784,784,784,736,784,784,784,784,784,784,784,784, \ 89 784,784,784,784,783,784,784,784,784,784,784,784,784,784,784,784, \ 90 784,784,784,784,784,784,784,784,784,784,784,784,784,784,784,783, \ 91 736,784,784,784,784,784,783,784,784,831,784,832,832,832,832,832 \ 92 93#define MPFR_SQRHIGH_TAB \ 94 -1,0,0,0,-1,-1,-1,-1,-1,7,7,7,8,9,10,11, \ 95 11,11,11,11,12,13,13,15,15,15,15,15,17,17,19,19, \ 96 19,19,19,19,20,20,23,21,23,23,24,23,27,25,26,27, \ 97 26,27,27,34,34,34,34,34,34,34,34,34,34,38,34,38, \ 98 38,38,38,40,40,42,42,44,42,42,46,42,42,46,46,42, \ 99 42,42,44,44,46,46,46,46,46,46,50,50,50,50,50,50, \ 100 54,54,54,56,54,56,58,58,68,68,68,68,68,68,68,68, \ 101 68,68,68,72,68,68,68,68,68,68,72,72,76,76,76,76, \ 102 76,76,76,76,84,84,84,84,76,84,84,84,84,84,88,92, \ 103 84,84,92,92,84,76,92,88,80,80,80,80,84,84,84,84, \ 104 84,88,84,84,84,92,92,92,92,88,92,96,92,96,92,96, \ 105 92,96,100,104,100,100,96,100,100,100,108,104,117,104,117,108, \ 106 117,117,117,123,122,122,120,117,122,117,122,123,122,123,122,123, \ 107 126,123,126,129,126,129,135,123,132,135,132,135,134,135,134,135, \ 108 138,129,132,123,144,144,134,135,140,129,146,135,132,147,146,147, \ 109 146,135,138,147,138,135,140,141,144,147,146,147,146,147,150,152, \ 110 152,153,152,153,156,153,138,135,140,141,138,144,146,147,147,147, \ 111 147,146,146,146,150,150,150,147,147,159,156,159,158,156,153,159, \ 112 159,159,159,158,201,201,201,201,170,201,170,201,171,201,168,201, \ 113 200,201,201,201,201,200,201,201,200,201,201,201,201,200,201,201, \ 114 201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201, \ 115 201,201,201,201,201,201,201,201,201,213,201,212,213,225,213,225, \ 116 225,225,225,225,225,225,225,225,225,224,225,225,225,225,224,225, \ 117 225,225,225,225,225,225,225,225,225,225,225,225,237,225,237,225, \ 118 249,249,249,249,249,249,249,249,249,249,248,249,249,249,261,249, \ 119 261,249,261,261,261,249,249,261,260,261,248,261,261,273,248,249, \ 120 249,261,261,249,249,273,249,248,249,249,249,273,261,273,273,249, \ 121 273,249,273,272,273,273,261,273,273,273,273,273,273,261,273,273, \ 122 273,273,273,276,285,273,273,273,273,273,273,273,273,261,285,285, \ 123 285,285,273,261,261,285,273,297,285,273,273,273,272,273,273,273, \ 124 273,273,273,273,273,273,273,276,273,273,273,273,285,273,273,285, \ 125 351,351,351,351,351,351,297,351,351,366,351,351,351,297,366,366, \ 126 351,351,351,351,366,363,351,362,364,366,366,366,364,351,351,351, \ 127 351,351,366,366,351,366,366,366,366,366,363,366,360,363,366,366, \ 128 366,363,366,366,366,366,366,366,366,351,366,366,351,351,351,384, \ 129 366,366,366,366,366,384,366,366,363,364,366,363,366,366,366,363, \ 130 366,366,366,366,366,366,366,366,366,365,366,366,366,384,366,366, \ 131 384,366,384,366,366,366,384,366,366,366,366,366,366,384,366,402, \ 132 393,384,366,402,402,402,384,402,402,402,384,401,402,402,351,402, \ 133 351,351,402,402,402,351,402,402,366,363,365,366,366,363,366,366, \ 134 365,360,366,366,366,351,366,363,365,363,366,366,366,366,363,365, \ 135 366,366,366,366,366,366,366,366,366,366,366,363,366,366,366,363, \ 136 365,366,402,402,366,402,384,384,381,402,384,384,384,384,384,384, \ 137 402,384,387,384,402,401,402,391,402,393,399,402,402,402,401,399, \ 138 401,402,402,402,402,402,402,402,402,402,402,402,402,402,399,402, \ 139 401,402,402,402,402,402,402,402,402,438,402,438,438,437,402,437, \ 140 438,437,438,438,438,441,438,438,438,438,438,438,438,438,437,438, \ 141 438,438,456,435,437,437,438,438,438,435,438,437,438,456,456,438, \ 142 455,456,456,456,474,456,474,456,456,474,456,456,512,456,512,512, \ 143 512,512,512,512,512,512,512,474,512,512,512,512,512,512,512,512, \ 144 512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512, \ 145 512,512,512,512,512,512,512,536,512,512,536,522,512,536,536,512, \ 146 512,512,512,536,536,524,536,531,536,536,536,536,536,536,536,536, \ 147 535,512,536,534,512,536,512,536,536,535,536,536,535,534,534,536, \ 148 536,536,536,535,536,535,534,536,536,536,536,536,536,534,536,536, \ 149 536,536,536,536,536,560,560,535,536,560,536,535,584,536,536,572, \ 150 583,584,584,584,536,572,560,584,584,584,584,584,583,584,584,584, \ 151 584,583,584,570,584,584,572,584,584,584,584,584,584,583,584,584, \ 152 584,584,584,560,584,584,584,584,584,584,584,584,584,584,584,584, \ 153 584,584,584,584,584,632,696,632,584,582,696,696,696,696,584,696, \ 154 694,696,695,696,695,696,694,695,695,696,696,696,695,696,696,695, \ 155 696,696,695,696,696,696,696,696,695,695,696,695,696,695,696,695, \ 156 696,695,696,695,696,695,696,695,696,696,696,696,696,695,696,696, \ 157 695,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696 \ 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,0,0,0,0,0,0,0,0,0,0,0, /*32-47*/ \ 163 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*48-63*/ \ 164 0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,0, /*64-79*/ \ 165 0,0,0,0,0,0,0,0,0,0,0,0,0,56,56,56, /*80-95*/ \ 166 56,56,60,58,59,56,59,59,56,59,60,58,56,64,60,60, /*96-111*/ \ 167 63,64,64,60,63,60,64,64,64,66,67,66,68,66,72,66, /*112-127*/ \ 168 67,67,71,68,68,71,71,70,76,74,74,76,76,72,75,80, /*128-143*/ \ 169 76,76,76,76,78,76,79,77,80,78,79,80,82,80,83,83, /*144-159*/ \ 170 83,85,86,91,85,88,87,85,87,90,112,91,112,89,112,112, /*160-175*/ \ 171 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112, /*176-191*/ \ 172 112,112,118,112,112,112,112,112,112,112,120,120,112,112,112,120, /*192-207*/ \ 173 112,112,112,112,112,120,112,119,112,112,114,112,124,120,120,116, /*208-223*/ \ 174 120,118,123,128,124,120,120,123,120,128,128,120,128,134,128,127, /*224-239*/ \ 175 126,128,136,134,136,128,126,127,136,128,134,136,136,128,136,132, /*240-255*/ \ 176 136,136,134,132,136,136,135,136,136,134,136,136,136,140,144,142, /*256-271*/ \ 177 143,144,144,143,144,143,150,144,144,143,144,144,156,144,152,151, /*272-287*/ \ 178 166,149,152,152,156,152,168,160,152,168,168,168,152,160,168,168, /*288-303*/ \ 179 168,172,166,168,168,180,166,166,165,165,168,168,168,164,174,167, /*304-319*/ \ 180 168,166,174,168,168,168,174,176,180,172,174,182,180,172,184,178, /*320-335*/ \ 181 184,183,184,186,182,182,183,185,174,224,176,224,224,224,196,191, /*336-351*/ \ 182 192,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, /*352-367*/ \ 183 224,224,224,224,224,224,224,224,224,224,228,224,224,224,233,224, /*368-383*/ \ 184 224,224,224,240,224,232,224,224,224,224,224,224,224,224,224,224, /*384-399*/ \ 185 224,224,224,224,228,224,224,224,224,224,224,224,224,225,224,224, /*400-415*/ \ 186 224,224,224,224,224,224,224,224,233,232,224,240,224,240,224,223, /*416-431*/ \ 187 224,224,224,224,224,232,224,232,228,233,224,224,228,240,230,240, /*432-447*/ \ 188 240,240,242,239,240,247,240,239,248,240,239,242,256,232,256,254, /*448-463*/ \ 189 256,256,256,256,256,256,256,256,256,240,264,256,264,264,256,263, /*464-479*/ \ 190 272,272,256,248,254,272,256,256,254,256,256,255,254,272,272,256, /*480-495*/ \ 191 256,272,264,256,255,271,272,264,256,272,272,272,272,256,272,272, /*496-511*/ \ 192 278,280,272,272,280,287,280,280,287,280,270,272,272,264,272,272, /*512-527*/ \ 193 271,269,270,280,272,272,271,272,272,270,272,272,272,272,288,273, /*528-543*/ \ 194 278,276,288,286,280,288,287,285,280,286,288,280,280,288,288,296, /*544-559*/ \ 195 288,288,288,289,288,288,287,287,288,296,288,288,296,302,312,294, /*560-575*/ \ 196 310,304,303,304,304,312,303,320,304,300,312,296,305,310,304,304, /*576-591*/ \ 197 304,302,303,312,302,304,304,304,302,336,304,304,328,311,312,328, /*592-607*/ \ 198 310,312,316,336,336,320,312,320,336,320,319,336,336,328,328,325, /*608-623*/ \ 199 320,328,328,336,320,336,320,324,336,348,320,336,343,320,336,336, /*624-639*/ \ 200 336,334,335,344,341,328,342,336,328,335,336,336,336,336,335,336, /*640-655*/ \ 201 336,343,336,344,336,336,348,360,344,359,344,360,360,360,344,348, /*656-671*/ \ 202 344,347,348,360,348,360,360,360,360,367,368,368,448,360,448,372, /*672-687*/ \ 203 360,360,448,368,448,448,448,448,448,448,448,448,448,448,448,448, /*688-703*/ \ 204 448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448, /*704-719*/ \ 205 448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448, /*720-735*/ \ 206 448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448, /*736-751*/ \ 207 448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448, /*752-767*/ \ 208 448,448,448,448,448,448,448,448,448,448,448,448,448,467,448,468, /*768-783*/ \ 209 448,468,448,466,448,464,468,448,464,464,448,448,448,448,464,448, /*784-799*/ \ 210 480,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448, /*800-815*/ \ 211 448,448,448,448,448,448,448,448,448,448,480,448,448,448,447,448, /*816-831*/ \ 212 448,448,448,464,448,448,448,448,448,448,448,448,448,447,448,448, /*832-847*/ \ 213 448,448,448,448,447,448,448,448,448,456,448,448,448,456,448,448, /*848-863*/ \ 214 448,448,448,448,448,448,448,448,448,448,464,464,448,467,448,448, /*864-879*/ \ 215 448,448,448,464,448,447,468,464,448,464,464,448,448,468,472,472, /*880-895*/ \ 216 466,462,464,469,468,464,463,480,472,479,496,480,472,512,472,479, /*896-911*/ \ 217 512,464,495,512,496,495,480,496,488,472,492,512,512,480,512,479, /*912-927*/ \ 218 512,480,504,480,480,496,512,480,472,480,512,496,480,512,536,496, /*928-943*/ \ 219 512,512,512,512,496,512,512,515,496,480,512,496,512,480,510,543, /*944-959*/ \ 220 512,496,512,496,528,528,496,512,512,528,527,496,512,508,512,528, /*960-975*/ \ 221 512,512,512,512,512,512,512,512,528,528,512,512,512,512,528,528, /*976-991*/ \ 222 512,528,526,527,528,511,508,511,512,512,528,527,528,528,510,512, /*992-1007*/ \ 223 528,544,544,536,536,520,511,536,536,543,512,528,544,512,542,543 /*1008-1023*/ \ 224 225 226