/* Various Thresholds of MPFR, not exported. -*- mode: C -*- Copyright 2005-2015 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 http://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, 2010-10-15, gcc 4.4.4 */ /* gcc57.fsffrance.org (Feroceon 88FR131 rev 1 (v5l)) with gmp 5.0.1 */ #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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \ 62,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76, \ 76,76,76,84,84,84,88,88,88,92,88,92,92,92,92,92, \ 92,92,92,92,92,92,92,92,92,92,92,92,92,92,100,100, \ 104,108,104,108,108,108,108,108,108,108,108,108,108,108,108,108, \ 108,108,108,108,108,108,108,108,120,116,120,120,129,129,129,135, \ 135,135,135,135,135,135,135,135,135,135,135,135,135,135,135,135, \ 135,135,135,135,135,135,135,147,147,147,147,147,147,153,153,153, \ 159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159, \ 159,159,159,159,159,159,159,159,159,171,171,171,171,177,177,177, \ 183,177,183,183,183,183,183,183,183,183,183,183,183,183,183,183, \ 183,183,183,183,183,183,183,183,204,204,204,204,204,204,212,212, \ 212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212, \ 212,212,212,212,212,212,212,212,212,212,212,228,228,228,228,228, \ 228,228,236,236,236,236,236,244,244,244,244,244,244,244,244,244, \ 244,244,244,244,244,244,244,244,244,244,244,244,244,244,244,244, \ 244,244,244,244,260,260,244,244,243,244,244,244,244,244,244,244, \ 244,244,244,244,244,284,284,284,284,284,284,284,284,300,300,300, \ 300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300, \ 300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300, \ 300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300, \ 300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300, \ 300,332,332,332,332,332,332,332,332,332,332,332,332,332,332,348, \ 348,348,348,348,348,348,348,348,348,348,348,348,348,348,348,348, \ 348,364,364,364,364,364,364,364,348,364,364,364,364,348,364,364, \ 364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364, \ 364,364,364,364,364,364,364,364,366,364,364,364,364,364,364,364, \ 364,364,390,364,390,390,390,390,390,390,390,390,390,390,390,426, \ 426,426,426,426,426,426,426,426,426,426,426,426,426,426,426,426, \ 426,426,426,426,426,426,426,450,426,450,450,450,450,450,450,450, \ 450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450, \ 450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450, \ 450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450, \ 450,450,450,450,474,450,474,498,498,498,498,498,498,498,498,498, \ 498,498,498,498,498,498,498,498,497,498,497,498,498,498,498,498, \ 498,522,522,522,522,522,522,522,522,522,522,522,522,522,522,522, \ 522,522,522,522,522,522,522,522,522,522,522,522,522,522,522,522, \ 546,546,546,546,546,546,546,546,546,546,546,546,546,546,546,546, \ 546,546,546,546,545,546,568,568,568,546,568,568,568,568,568,568, \ 568,568,568,568,568,600,600,600,600,568,600,600,600,568,568,600, \ 600,600,600,600,600,600,600,598,600,600,600,600,600,600,600,600, \ 599,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600, \ 600,600,600,600,600,600,600,600,600,600,600,600,600,600,600,600, \ 600,600,600,600,600,600,600,600,600,600,600,632,600,600,600,600, \ 632,632,600,600,632,632,600,632,664,664,664,664,664,664,664,664, \ 664,664,664,664,664,664,664,664,664,664,664,664,664,664,664,664, \ 664,664,664,664,664,664,664,664,664,664,664,664,696,696,696,696, \ 696,696,696,696,696,696,696,696,696,696,696,696,696,696,696,696, \ 696,696,696,696,696,696,696,696,695,696,728,696,728,728,727,728, \ 728,728,728,728,728,727,728,728,727,728,728,728,728,728,727,728, \ 728,727,728,727,728,728,728,728,728,728,727,728,728,727,727,728, \ 728,727,728,728,728,728,727,728,728,728,728,728,728,728,728,728, \ 728,728,728,728,728,727,728,728,727,728,728,728,728,728,728,728, \ 728,728,728,727,727,728,728,728,728,727,728,728,728,728,728,728, \ 728,728,728,727,728,728,728,728,728,728,727,728,728,728,728,792, \ 792,792,792,792,728,728,760,760,760,728,792,792,760,792,792,760, \ 760,760,824,792,824,792,824,792,824,792,824,824,824,824,824,824, \ 823,824,824,824,792,792,824,792,824,792,792,792,824,824,792,856 \ #define MPFR_SQRHIGH_TAB \ -1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, \ 0,0,0,0,12,12,13,13,14,14,15,15,16,16,17,17, \ 18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25, \ 26,26,27,27,28,28,29,29,30,30,31,31,32,32,33,33, \ 34,34,35,35,36,36,37,37,38,38,39,39,40,40,41,41, \ 42,42,43,43,44,44,47,45,46,46,47,47,48,48,49,49, \ 50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57, \ 58,58,59,59,60,60,61,61,62,62,63,63,64,64,67,65, \ 66,66,67,67,68,68,69,69,70,70,71,71,73,72,75,73, \ 74,74,75,77,76,76,82,77,82,82,82,82,82,82,82,82, \ 82,82,86,86,90,90,90,85,90,90,90,90,90,90,90,94, \ 90,94,98,94,98,98,98,98,98,98,98,98,98,98,98,102, \ 106,106,106,102,106,106,106,106,106,106,106,110,106,114,114,110, \ 110,114,114,114,114,114,114,118,114,114,114,118,122,122,122,118, \ 122,122,122,122,122,122,122,126,130,130,126,119,130,120,130,121, \ 122,122,123,123,124,124,125,125,126,126,127,128,128,128,130,130, \ 130,132,131,132,134,132,141,136,141,138,147,144,147,144,147,144, \ 147,150,147,150,153,150,153,156,153,156,159,156,159,156,147,145, \ 147,150,147,150,148,150,153,156,153,156,159,156,159,156,159,162, \ 159,162,159,162,159,162,165,168,165,168,165,168,171,174,171,174, \ 171,174,177,174,171,180,177,174,177,180,183,180,183,180,183,186, \ 183,186,183,186,183,180,189,180,195,180,183,180,183,180,183,186, \ 183,186,183,186,189,192,195,192,189,192,195,192,195,198,195,198, \ 195,198,195,198,201,204,201,204,207,204,207,204,207,210,207,210, \ 207,210,207,210,207,220,224,220,223,228,224,224,224,228,204,228, \ 204,228,232,228,204,228,232,236,232,236,240,236,240,240,240,244, \ 240,240,243,244,240,244,228,244,228,248,228,252,228,252,228,256, \ 228,256,236,256,236,240,240,239,244,240,240,240,240,243,244,248, \ 244,243,248,248,248,248,252,248,252,256,256,256,256,256,256,256, \ 256,256,260,259,260,264,260,264,260,267,268,272,268,272,276,248, \ 252,256,256,256,260,259,256,256,256,255,260,264,260,264,260,267, \ 260,267,272,272,264,272,272,272,272,272,276,272,276,272,276,275, \ 276,280,276,280,284,280,284,288,284,280,292,288,288,291,292,287, \ 288,288,292,296,292,291,292,308,308,304,300,308,300,308,308,308, \ 308,308,304,308,316,308,316,315,324,324,324,323,324,324,324,324, \ 324,323,324,323,324,328,324,323,324,323,336,336,342,336,342,336, \ 342,336,342,348,342,348,348,348,348,323,348,353,348,360,354,360, \ 360,360,360,360,354,360,366,360,360,360,366,360,366,360,366,372, \ 366,372,366,372,378,372,372,372,378,384,378,360,378,384,390,384, \ 384,384,384,384,384,384,384,384,390,396,366,372,372,372,372,372, \ 378,396,378,384,384,384,384,384,384,384,390,384,424,384,424,423, \ 424,423,424,423,424,423,424,432,424,432,424,432,432,432,424,432, \ 432,432,432,448,432,432,440,448,440,432,440,448,424,448,448,448, \ 448,448,448,432,424,432,432,432,456,432,432,432,432,432,432,432, \ 440,432,440,448,448,448,448,448,448,448,448,448,456,448,456,448, \ 456,448,456,464,456,464,456,464,464,464,464,464,472,464,464,464, \ 464,472,480,464,472,464,480,480,472,480,480,480,480,480,480,480, \ 480,480,480,480,488,480,488,464,488,487,496,496,504,496,488,496, \ 496,472,504,496,504,512,512,512,512,512,504,512,512,512,512,512, \ 512,512,512,512,512,512,512,496,520,488,496,496,496,496,496,496, \ 503,504,536,504,496,504,511,504,512,504,512,512,512,512,512,512, \ 544,512,512,512,544,528,552,520,528,520,528,520,528,528,528,520, \ 528,528,528,536,528,528,528,544,544,536,512,544,544,528,544,544, \ 544,552,512,552,512,520,512,520,519,520,528,528,528,528,560,520, \ 528,528,528,520,528,536,528,536,528,544,528,536,544,536,544,544, \ 544,552,544,552,544,544,544,544,544,544,544,544,560,552,551,560, \ 560,552,560,552,560,560,560,560,560,568,576,568,576,568,560,568, \ 576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,584, \ 576,592,592,584,592,584,592,592,592,544,592,592,592,544,608,600, \ 616,600,608,608,616,600,616,552,616,616,616,616,608,616,648,616, \ 616,616,648,632,648,632,576,664,631,632,648,632,648,632,648,648, \ 647,648,647,648,647,648,647,648,648,648,648,648,647,648,648,648, \ 648,648,648,648,648,664,648,648,648,664,616,664,663,664,663,664, \ 608,664,616,664,616,664,616,664,608,632,616,616,680,632,616,632 \ #define MPFR_DIVHIGH_TAB \ 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, \ 16,17,18,17,18,17,13,16,16,16,19,18,19,19,20,20, \ 23,24,21,24,25,24,27,25,24,26,25,28,27,29,31,31, \ 29,31,32,32,32,33,29,34,33,33,34,37,32,36,37,37, \ 39,36,36,38,41,41,41,42,42,43,43,45,44,44,44,43, \ 45,45,48,44,47,48,47,52,47,49,51,52,49,52,53,49, \ 55,57,53,56,57,57,57,59,58,62,56,59,56,63,63,60, \ 58,65,64,66,64,60,67,67,62,68,66,66,67,69,65,71, \ 70,73,69,68,73,72,73,69,75,75,71,74,75,73,73,78, \ 76,75,77,81,80,80,77,77,81,84,85,84,84,80,81,86, \ 83,85,85,86,88,88,85,91,87,89,89,93,91,89,89,95, \ 96,95,91,91,92,92,96,93,99,99,96,96,97,96,101,100, \ 98,107,100,106,104,101,101,101,105,107,109,103,110,107,105,108, \ 106,109,111,112,114,109,116,109,116,114,113,117,116,114,115,113, \ 114,116,120,120,121,118,117,122,125,118,120,119,125,120,121,121, \ 125,125,123,124,125,125,125,125,127,126,127,128,128,131,129,129, \ 130,130,131,131,132,132,133,133,134,134,135,144,136,143,145,148, \ 143,144,152,152,152,148,149,152,152,152,151,149,160,152,152,152, \ 151,151,152,152,168,152,152,150,152,151,152,159,152,160,160,153, \ 167,176,159,160,168,160,159,168,167,167,167,168,175,160,178,166, \ 165,168,176,168,167,176,168,176,179,168,184,184,180,176,184,169, \ 175,175,182,174,175,176,183,184,184,176,192,178,184,183,182,183, \ 183,183,184,191,183,186,184,192,184,184,191,199,199,200,200,192, \ 192,192,200,208,199,197,200,202,207,208,208,198,210,208,199,209, \ 215,208,208,216,208,216,204,215,200,208,211,200,206,207,216,208, \ 202,207,208,208,216,208,208,207,214,209,216,216,212,208,218,215, \ 214,216,216,211,216,215,216,216,216,224,216,224,218,216,224,218, \ 230,224,224,238,222,232,224,226,236,222,228,232,232,238,240,240, \ 226,240,230,239,240,239,240,239,240,232,240,231,232,240,233,240, \ 240,239,238,240,240,240,246,258,240,238,239,239,240,255,241,258, \ 242,254,258,252,253,257,257,252,258,258,252,258,248,254,252,264, \ 263,257,262,266,256,266,253,258,264,258,258,270,266,262,258,257, \ 258,258,272,259,264,265,284,304,263,266,264,288,304,304,270,282, \ 300,304,288,288,288,294,288,292,302,300,286,304,302,288,300,304, \ 302,298,304,288,304,304,304,300,288,304,316,304,300,314,288,300, \ 312,302,304,304,306,302,303,300,304,304,311,304,316,300,336,318, \ 304,318,304,312,316,300,304,308,304,312,320,318,320,336,304,316, \ 299,336,318,318,318,304,340,336,320,304,304,336,324,348,305,316, \ 334,316,352,336,336,336,318,336,340,336,354,318,320,352,352,352, \ 318,336,328,318,352,336,358,330,342,360,366,366,350,334,348,336, \ 354,350,348,340,336,352,352,352,336,352,332,350,366,336,351,366, \ 352,366,352,352,352,336,336,348,353,336,351,366,366,360,366,346, \ 350,362,366,352,366,366,352,364,353,356,348,366,368,352,365,348, \ 353,366,350,366,352,352,364,372,354,352,372,352,362,352,368,365, \ 354,354,366,372,366,368,364,370,368,368,366,372,368,368,366,366, \ 368,405,374,364,366,384,372,366,366,368,367,390,368,400,372,400, \ 371,392,413,399,380,400,404,417,415,386,384,400,392,400,405,407, \ 399,421,408,400,406,408,415,421,416,400,419,415,406,416,412,408, \ 422,408,416,431,416,421,404,416,400,416,417,431,415,392,424,424, \ 415,432,421,416,432,432,408,399,415,416,400,424,422,408,420,431, \ 423,432,417,416,415,432,413,414,432,424,424,416,416,432,415,409, \ 416,424,416,430,415,431,423,432,423,424,424,420,416,431,417,436, \ 420,430,424,430,428,420,421,424,428,431,464,430,424,439,428,448, \ 432,431,432,433,436,440,464,469,468,453,431,440,448,440,449,463, \ 464,439,440,468,480,447,448,463,468,440,472,470,480,464,470,480, \ 464,471,471,464,479,460,464,461,488,478,468,480,479,464,488,463, \ 450,478,464,469,464,471,488,465,478,488,477,480,481,472,480,488, \ 496,468,480,479,488,480,488,469,463,488,480,480,464,477,480,481, \ 504,472,480,516,504,504,504,478,480,479,488,516,480,483,485,516, \ 488,488,488,516,504,488,481,484,480,516,512,528,504,480,532,503, \ 488,504,516,536,488,528,516,488,532,516,528,501,512,504,516,504, \ 528,492,520,516,516,504,525,496,516,520,516,512,520,532,528,516, \ 516,524,512,508,520,528,516,532,532,516,533,516,528,504,528,516, \ 532,576,532,515,516,600,528,517,516,600,600,532,516,600,600,524 \ #define MPFR_MUL_THRESHOLD 16 /* limbs */ #define MPFR_SQR_THRESHOLD 31 /* limbs */ #define MPFR_EXP_2_THRESHOLD 469 /* bits */ #define MPFR_EXP_THRESHOLD 5484 /* bits */ #define MPFR_SINCOS_THRESHOLD 23806 /* bits */ #define MPFR_AI_THRESHOLD1 -24060 /* threshold for negative input of mpfr_ai */ #define MPFR_AI_THRESHOLD2 2314 #define MPFR_AI_THRESHOLD3 40340 /* Tuneup completed successfully, took 8148 seconds */