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 /* 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