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