/* Various Thresholds of MPFR, not exported. -*- mode: C -*- Copyright 2005-2021 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. */ /* Generated by MPFR's tuneup.c, 2018-02-22, gcc 4.6.3 on gcc22.fsffrance.org (Cavium Octeon II V0.1) with GMP 6.1.2, which defines CFLAGS='-O2 -pedantic -mabi=n32' */ #define MPFR_MULHIGH_TAB \ -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \ 0,32,32,32,36,36,36,36,36,36,36,36,36,36,36,40, \ 40,40,44,44,44,44,44,44,44,44,44,48,48,52,52,52, \ 52,52,52,52,52,52,52,64,64,64,64,64,64,64,64,64, \ 72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72, \ 72,80,80,80,80,80,80,80,80,72,72,72,72,72,72,72, \ 72,80,80,80,80,105,105,105,105,105,105,105,105,105,105,105, \ 105,105,105,105,105,105,105,105,103,104,105,105,105,105,105,105, \ 105,105,105,105,105,105,105,117,117,117,117,117,117,117,117,117, \ 117,117,117,120,129,129,129,129,129,129,129,129,129,129,129,129, \ 129,129,129,129,129,129,129,129,141,141,141,141,141,141,141,141, \ 153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153, \ 153,153,153,153,153,153,153,153,153,153,153,165,165,165,165,165, \ 165,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189, \ 189,189,189,189,189,189,189,189,189,189,213,213,213,213,213,213, \ 213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213, \ 213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213, \ 213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213, \ 213,213,213,213,213,213,237,237,237,237,237,237,237,237,237,237, \ 237,237,237,237,237,237,237,237,237,237,237,276,276,276,276,276, \ 276,276,276,276,276,276,276,276,276,276,276,276,276,276,276,276, \ 276,276,276,316,316,316,316,316,316,316,316,316,316,316,316,316, \ 316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316, \ 316,316,316,354,354,354,354,354,354,354,354,354,354,354,354,354, \ 354,354,354,354,354,354,354,354,354,354,354,354,378,378,378,378, \ 378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378, \ 378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378, \ 378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378, \ 378,378,378,378,378,378,378,378,378,378,378,426,426,426,426,426, \ 426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426, \ 426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426, \ 426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426, \ 426,426,426,426,426,426,426,426,426,456,456,456,456,456,456,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,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,568,568,568,568,568,568, \ 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \ 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \ 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \ 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \ 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \ 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \ 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \ 568,568,568,568,568,568,568,568,632,632,632,632,632,632,632,632, \ 632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632, \ 632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632, \ 632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632, \ 632,632,632,632,632,632,632,632,632,632,632,632,736,736,736,736, \ 736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \ 736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \ 736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \ 736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \ 736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \ 736,736,736,736,736,736,736,736,736,736,736,832,832,832,832,832, \ 832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832, \ 832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832, \ 832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832, \ 832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832, \ 832,832,832,832,832,832,832,832,832,832,832,832,832,832,832,832, \ 832,832,832,832,832,832,832,832,832,832,832,832,832,832,856,832 \ #define MPFR_SQRHIGH_TAB \ -1,0,0,0,0,0,0,0,0,0,0,0,8,8,9,10, \ 10,10,11,11,12,12,13,14,14,14,15,15,16,16,17,18, \ 18,18,19,19,20,20,21,22,22,22,23,23,24,24,25,25, \ 26,26,27,27,28,28,29,30,32,32,32,32,32,36,36,36, \ 36,36,36,36,36,36,40,40,40,40,40,42,44,44,44,44, \ 44,44,44,44,44,48,48,48,48,52,52,52,52,52,52,52, \ 64,64,64,64,64,64,64,64,64,64,64,64,64,64,68,72, \ 72,64,64,64,64,64,64,64,64,64,64,68,68,68,72,72, \ 72,72,72,72,72,72,72,72,72,72,72,72,72,80,80,80, \ 80,80,80,84,80,80,80,88,88,84,88,88,88,88,88,99, \ 99,99,105,99,99,105,105,99,99,105,105,105,105,105,105,105, \ 105,105,105,105,105,105,105,105,105,105,105,105,105,111,111,111, \ 111,111,117,117,117,117,117,117,117,117,123,123,123,123,105,105, \ 117,129,129,111,111,111,117,117,117,117,117,117,123,123,123,123, \ 123,123,123,123,129,129,129,129,129,129,129,129,129,129,135,135, \ 135,135,141,141,141,141,141,141,141,141,141,147,147,147,147,147, \ 153,153,153,153,153,153,153,153,153,153,153,153,153,153,153,153, \ 153,153,153,153,153,153,141,141,147,147,147,147,147,147,189,189, \ 189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189, \ 189,189,201,201,201,201,201,201,201,189,201,201,201,201,213,213, \ 213,213,213,189,189,189,189,189,189,189,189,189,189,189,189,189, \ 201,201,201,201,201,201,201,201,201,201,189,189,189,213,213,213, \ 213,213,213,213,213,213,213,213,201,201,201,201,201,213,213,213, \ 213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213, \ 213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213, \ 213,213,213,213,237,237,237,237,237,237,237,237,237,237,237,237, \ 237,237,237,237,237,237,237,237,237,237,237,237,237,237,237,249, \ 249,261,261,261,261,261,261,294,294,294,294,294,261,261,261,294, \ 294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294, \ 294,294,294,294,294,294,294,294,294,312,312,312,294,294,294,294, \ 294,312,312,312,312,312,312,312,312,312,312,312,312,312,312,312, \ 312,312,312,402,402,402,402,402,402,402,402,402,402,402,402,402, \ 402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402, \ 402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402, \ 402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402, \ 402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402, \ 402,402,402,402,402,402,402,402,402,402,402,402,402,402,402,402, \ 402,402,402,402,402,426,426,426,426,426,426,426,426,426,426,426, \ 426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426, \ 426,426,426,426,426,426,426,426,426,456,504,426,426,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,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,504,536,536,504,536,536,536,536, \ 504,536,536,536,536,536,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,568,568,568,568,568,568,568,568,568,568,568,568, \ 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \ 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \ 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \ 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \ 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \ 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \ 568,568,568,568,568,568,600,600,600,600,600,600,600,600,600,600, \ 600,600,632,632,632,632,632,632,632,632,632,632,632,632,632,632, \ 632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632, \ 632,624,632,632,632,632,632,632,632,632,632,632,632,632,632,632, \ 632,632,632,632,664,632,664,664,664,664,664,664,664,664,664,664, \ 664,664,664,664,664,664,664,696,664,696,696,696,696,696,696,696, \ 696,696,696,696,568,568,568,568,568,568,568,568,568,568,568,568, \ 568,536,568,568,568,568,568,568,568,568,568,568,568,568,568,568, \ 568,568,568,568,568,568,568,568,568,568,568,568,568,568,568,568 \ #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,0,0, /*64-79*/ \ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*80-95*/ \ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59, /*96-111*/ \ 58,59,62,60,60,60,62,62,62,62,63,72,72,72,72,72, /*112-127*/ \ 72,72,72,72,72,70,72,72,72,72,72,72,72,72,78,80, /*128-143*/ \ 80,84,80,80,79,80,80,88,80,80,88,87,80,80,88,88, /*144-159*/ \ 87,88,88,88,88,88,86,88,96,88,88,88,88,88,96,104, /*160-175*/ \ 104,96,96,96,96,96,96,104,96,104,104,104,104,104,104,100, /*176-191*/ \ 104,104,102,104,102,104,104,104,104,104,104,112,104,104,112,107, /*192-207*/ \ 112,112,112,112,112,112,112,120,112,112,128,112,112,128,124,122, /*208-223*/ \ 124,114,120,122,116,128,125,128,119,120,144,120,120,123,144,128, /*224-239*/ \ 144,126,144,128,144,144,144,144,144,144,144,144,144,144,144,144, /*240-255*/ \ 144,144,144,144,144,144,141,144,144,144,144,144,144,144,144,144, /*256-271*/ \ 144,144,144,144,144,159,144,144,144,144,144,144,144,144,160,160, /*272-287*/ \ 158,159,159,160,160,159,158,158,160,160,160,160,164,160,160,160, /*288-303*/ \ 160,159,160,160,160,160,160,158,160,160,160,160,160,160,174,176, /*304-319*/ \ 176,176,175,176,176,176,176,174,176,175,176,176,176,176,176,176, /*320-335*/ \ 176,176,173,176,176,176,186,192,176,184,176,208,191,176,192,192, /*336-351*/ \ 185,207,192,208,192,191,192,207,206,208,192,207,208,208,208,208, /*352-367*/ \ 208,208,207,208,208,208,209,208,209,209,209,208,208,208,208,208, /*368-383*/ \ 208,208,208,207,208,208,216,208,208,208,208,208,208,208,208,208, /*384-399*/ \ 208,208,209,224,207,208,208,208,208,209,208,207,208,224,224,223, /*400-415*/ \ 224,216,221,222,233,216,221,224,234,224,224,224,224,240,224,232, /*416-431*/ \ 240,240,239,243,247,224,240,246,246,240,256,256,240,256,248,256, /*432-447*/ \ 250,256,256,256,240,240,256,256,256,256,252,256,256,240,253,246, /*448-463*/ \ 254,252,256,255,255,256,256,254,256,256,256,256,288,288,256,287, /*464-479*/ \ 256,288,248,256,246,288,288,256,288,288,256,288,288,288,256,282, /*480-495*/ \ 288,288,288,256,288,288,256,256,288,256,288,288,256,256,287,288, /*496-511*/ \ 285,284,288,288,288,304,287,288,288,288,288,288,282,288,288,288, /*512-527*/ \ 288,288,288,287,286,288,288,288,288,288,288,287,288,286,287,288, /*528-543*/ \ 288,288,288,288,288,288,304,288,288,287,287,286,288,288,287,288, /*544-559*/ \ 288,288,288,287,288,287,288,288,288,288,288,288,288,288,290,320, /*560-575*/ \ 318,320,304,320,302,320,304,304,305,320,305,318,318,320,320,320, /*576-591*/ \ 318,320,319,317,320,312,316,320,318,319,320,320,320,320,318,312, /*592-607*/ \ 316,312,319,318,320,328,318,318,320,320,336,320,316,318,319,319, /*608-623*/ \ 320,318,319,320,320,320,320,319,352,350,351,352,352,352,324,351, /*624-639*/ \ 352,352,351,336,351,372,371,350,378,336,336,368,372,378,351,372, /*640-655*/ \ 378,384,384,352,352,352,378,383,352,352,384,371,384,384,372,351, /*656-671*/ \ 384,352,368,384,384,372,352,382,384,378,376,384,370,383,372,384, /*672-687*/ \ 372,384,384,378,378,417,414,417,416,384,416,416,384,416,378,416, /*688-703*/ \ 417,384,372,414,416,416,384,415,414,417,416,416,415,416,416,384, /*704-719*/ \ 417,416,416,416,416,416,416,416,416,416,416,415,416,416,416,418, /*720-735*/ \ 417,417,419,416,416,417,418,418,417,416,414,416,414,414,418,416, /*736-751*/ \ 415,418,417,416,420,416,418,416,416,416,416,417,384,416,420,417, /*752-767*/ \ 414,416,418,415,416,416,416,414,417,418,413,418,416,417,416,417, /*768-783*/ \ 417,416,418,416,416,414,416,418,417,420,414,416,415,416,416,417, /*784-799*/ \ 416,418,418,414,418,416,417,416,416,416,416,416,415,415,417,415, /*800-815*/ \ 418,420,414,418,415,416,419,415,416,416,416,415,416,417,418,418, /*816-831*/ \ 420,426,420,419,431,424,426,432,431,431,426,430,432,426,432,426, /*832-847*/ \ 426,432,432,432,432,440,432,432,448,432,432,448,432,432,444,449, /*848-863*/ \ 448,464,438,474,444,444,444,440,449,473,480,441,446,480,448,474, /*864-879*/ \ 448,448,471,466,472,448,448,447,479,472,474,448,480,448,464,449, /*880-895*/ \ 468,456,467,480,466,468,474,461,455,467,473,473,466,466,468,473, /*896-911*/ \ 480,474,471,468,462,468,467,480,478,479,480,474,479,480,478,474, /*912-927*/ \ 478,474,473,480,480,480,480,480,480,480,472,471,474,480,480,474, /*928-943*/ \ 474,480,480,480,479,492,480,479,479,480,480,480,491,480,504,512, /*944-959*/ \ 493,512,492,512,513,512,497,494,488,492,512,512,499,512,507,510, /*960-975*/ \ 504,494,512,510,512,511,512,511,512,512,512,512,513,512,512,508, /*976-991*/ \ 512,504,528,512,511,512,512,513,511,504,512,512,515,504,552,552, /*992-1007*/ \ 510,576,512,512,512,508,512,576,514,512,512,576,576,570,575,576 /*1008-1023*/ \ #define MPFR_MUL_THRESHOLD 5 /* limbs */ #define MPFR_SQR_THRESHOLD 8 /* limbs */ #define MPFR_DIV_THRESHOLD 5 /* limbs */ #define MPFR_EXP_2_THRESHOLD 215 /* bits */ #define MPFR_EXP_THRESHOLD 12405 /* bits */ #define MPFR_SINCOS_THRESHOLD 20831 /* bits */ #define MPFR_AI_THRESHOLD1 -19332 /* threshold for negative input of mpfr_ai */ #define MPFR_AI_THRESHOLD2 2329 #define MPFR_AI_THRESHOLD3 28997 /* Tuneup completed successfully, took 6568 seconds */