/* 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, 2011-07-31, gcc 4.3.2 */ /* gcc14.fsffrance.org (Intel(R) Xeon(R) CPU X5450 @ 3.00GHz) with gmp 5.0.2 */ /* very similar timings were obtained on 2012-01-25 with gcc 4.1.3 on gcc70.fsffrance.org (Intel(R) Xeon(TM) CPU 3.20GHz) with gmp 5.0.2, where GMP defines -mtune=nocona, thus we share the parameters */ #define MPFR_MULHIGH_TAB \ -1,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,9, \ 10,10,12,12,13,13,13,13,14,16,16,17,18,19,20,24, \ 24,24,24,24,26,26,26,26,28,28,28,30,30,32,32,28, \ 28,30,30,32,32,32,32,32,32,32,32,34,36,48,38,36, \ 40,46,48,48,48,48,48,48,48,48,48,48,48,56,56,56, \ 56,48,48,48,56,60,60,60,64,64,56,56,56,60,60,60, \ 64,69,64,64,64,69,69,69,69,69,69,69,64,64,75,81, \ 81,80,80,80,81,81,81,81,81,81,87,81,87,87,92,93, \ 92,87,93,92,87,90,93,92,93,92,90,93,92,93,92,93, \ 92,93,93,93,104,93,99,93,99,104,105,104,105,104,105,104, \ 111,104,111,110,104,117,117,117,117,117,117,104,105,141,141,140, \ 141,141,141,141,141,141,141,141,141,141,141,141,141,140,141,141, \ 141,141,141,141,141,141,141,141,140,141,141,141,141,138,140,141, \ 141,141,140,141,141,141,141,141,141,141,141,141,165,141,153,141, \ 153,165,188,188,188,188,188,188,188,188,188,188,188,188,188,188, \ 188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188, \ 188,188,188,188,188,188,188,188,188,188,188,188,188,188,188,188, \ 188,188,204,204,188,203,188,188,204,204,188,188,216,220,220,220, \ 220,204,204,220,220,220,220,220,220,220,220,220,220,220,220,220, \ 220,220,220,235,236,219,220,220,236,236,236,236,236,236,236,236, \ 236,236,236,236,236,236,236,282,282,282,282,282,282,282,282,282, \ 282,282,282,282,282,282,282,282,282,281,282,280,282,282,282,282, \ 282,282,282,282,282,282,282,281,281,282,281,281,282,282,282,282, \ 282,282,282,282,282,282,282,282,282,282,282,281,282,280,281,282, \ 282,282,282,282,306,282,306,330,330,306,281,330,282,282,330,330, \ 330,282,330,329,330,330,330,330,330,330,330,330,330,330,330,330, \ 330,330,330,330,330,330,330,330,330,330,354,354,330,330,330,329, \ 330,330,330,330,330,330,330,329,330,330,354,354,330,330,330,330, \ 330,330,378,330,354,330,354,354,354,354,354,377,378,354,354,354, \ 378,354,378,378,354,353,354,378,354,378,378,377,378,378,378,408, \ 408,408,378,408,408,408,378,416,408,408,377,378,378,408,408,407, \ 408,408,408,408,408,408,408,440,408,440,440,440,439,440,440,440, \ 432,439,440,440,440,439,440,440,440,439,440,439,440,439,440,440, \ 440,440,440,439,440,440,440,440,440,439,440,440,440,440,439,440, \ 440,440,440,439,471,440,440,440,440,440,440,439,440,440,440,440, \ 440,440,440,440,440,440,472,440,440,439,440,440,440,439,440,440, \ 440,472,439,440,440,440,472,440,471,472,472,472,472,472,472,471, \ 471,472,471,472,472,472,504,504,504,504,504,504,504,504,472,471, \ 472,472,504,472,471,472,504,504,504,504,504,503,504,504,504,504, \ 504,503,504,504,504,504,503,504,504,504,504,504,503,504,504,504, \ 504,504,503,504,504,504,504,504,504,504,504,504,504,504,504,504, \ 504,504,504,504,544,544,544,544,544,544,544,544,544,544,544,544, \ 542,543,544,544,544,544,544,544,544,544,544,544,544,544,544,544, \ 543,544,544,544,544,544,544,544,544,544,544,544,544,544,544,544, \ 544,592,544,544,592,592,544,592,592,591,592,592,632,631,592,592, \ 592,592,592,592,592,640,640,640,640,640,616,616,616,616,616,616, \ 632,592,616,616,632,630,631,632,632,632,616,632,640,632,632,640, \ 640,640,640,640,640,640,639,640,632,632,639,640,640,640,632,632, \ 640,639,640,640,632,640,640,640,640,640,640,640,640,640,640,640, \ 640,640,640,640,640,640,632,640,640,640,640,640,640,640,640,640, \ 640,640,640,640,640,640,640,640,640,640,632,688,640,640,632,632, \ 640,640,640,640,639,640,640,640,688,632,687,640,712,688,640,640, \ 640,640,640,712,640,640,640,712,736,640,640,640,711,712,736,736, \ 640,640,688,712,712,712,712,712,728,736,728,728,736,736,736,736, \ 736,736,736,736,734,736,728,736,736,736,728,736,736,736,736,736, \ 736,736,736,736,735,712,736,736,736,712,736,736,736,736,736,736, \ 736,736,736,712,736,736,712,736,728,712,736,712,736,736,736,736, \ 728,712,736,736,735,736,736,736,735,736,736,736,736,735,736,736, \ 736,736,736,736,736,736,736,736,736,736,736,736,736,734,736,736, \ 736,736,735,736,736,736,735,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,735,736, \ 736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \ 824,824,832,832,832,832,824,832,832,832,832,832,824,831,832,832 \ #define MPFR_SQRHIGH_TAB \ -1,0,0,0,0,0,0,5,6,6,7,8,8,8,10,9, \ 10,11,11,11,12,13,13,13,14,16,16,17,17,17,17,17, \ 18,19,20,21,20,23,24,21,26,23,23,24,24,24,25,28, \ 26,28,28,34,32,34,32,32,34,34,32,34,34,34,34,34, \ 34,36,40,38,38,36,42,42,40,40,40,40,42,42,42,42, \ 46,42,48,48,48,46,52,52,52,52,52,52,56,56,56,56, \ 64,56,64,64,64,64,68,56,64,64,64,68,63,64,64,68, \ 68,68,68,68,64,68,68,68,72,64,68,68,68,64,67,68, \ 68,68,68,68,68,68,72,84,80,72,72,72,72,72,76,76, \ 76,76,80,80,76,76,80,84,80,80,80,84,84,84,84,84, \ 84,84,84,96,84,84,92,92,96,96,96,99,92,92,92,95, \ 96,105,111,105,104,105,104,104,105,105,105,105,104,105,104,105, \ 99,114,105,116,117,117,117,123,117,123,116,123,116,111,123,123, \ 123,123,123,123,123,117,117,117,123,123,123,117,123,117,123,123, \ 123,123,123,123,117,123,123,123,156,123,123,141,123,123,135,135, \ 123,148,123,141,141,156,156,129,156,163,156,164,156,156,156,135, \ 156,141,155,164,156,156,164,148,148,147,141,164,164,164,164,156, \ 164,164,164,164,163,164,164,164,164,164,164,164,164,164,164,164, \ 164,156,164,164,156,164,164,164,188,163,164,164,164,164,187,188, \ 180,164,204,204,164,188,196,188,188,204,196,180,196,204,188,196, \ 220,187,204,220,204,180,220,220,204,204,196,204,220,204,220,220, \ 220,220,204,220,220,220,220,220,220,220,220,220,220,220,220,220, \ 252,220,220,220,220,220,252,220,252,220,220,220,220,252,252,252, \ 252,252,252,252,252,252,252,252,252,252,252,252,267,268,252,252, \ 252,250,252,252,252,268,251,252,268,252,268,268,268,252,252,252, \ 265,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268, \ 268,267,268,268,268,267,268,268,268,267,268,268,268,268,268,268, \ 268,268,252,268,252,268,268,268,268,268,268,265,268,268,268,268, \ 268,268,268,268,268,268,268,268,268,268,268,268,265,268,268,268, \ 252,268,268,266,268,268,268,328,265,282,312,268,268,268,268,268, \ 268,268,268,268,268,268,268,311,310,282,282,294,312,282,281,294, \ 282,268,312,312,268,311,312,268,268,312,268,312,312,268,312,327, \ 268,312,328,268,328,268,328,328,328,312,328,312,327,328,328,312, \ 327,328,328,327,325,327,327,359,328,328,327,328,328,328,328,328, \ 311,328,360,360,360,360,360,360,360,360,360,360,328,360,360,360, \ 328,312,328,360,327,328,328,359,360,328,359,328,312,360,360,327, \ 312,408,328,440,328,328,328,328,328,392,328,328,408,408,408,392, \ 407,408,408,408,392,407,408,408,407,407,408,408,408,392,408,408, \ 407,408,392,408,408,440,406,408,408,408,440,408,408,408,440,440, \ 440,440,440,392,440,392,440,440,440,440,440,440,440,440,440,440, \ 408,392,440,440,440,438,439,440,440,440,440,440,440,439,440,439, \ 440,440,440,504,408,504,408,408,408,472,408,408,407,408,440,439, \ 439,440,440,440,440,440,440,440,437,440,440,440,439,504,503,504, \ 504,503,504,504,440,502,504,503,503,504,504,503,504,504,504,504, \ 504,503,504,504,499,503,502,504,504,536,502,504,504,504,536,504, \ 504,504,503,504,504,503,536,504,502,536,503,504,504,504,536,536, \ 504,504,504,536,536,535,504,536,535,504,504,504,504,504,504,536, \ 536,536,503,536,504,503,536,536,504,535,536,536,504,535,520,536, \ 504,504,504,536,535,536,520,536,535,520,536,535,535,536,536,535, \ 504,536,536,535,536,535,535,536,536,536,536,536,535,504,536,536, \ 536,536,536,536,536,536,536,536,536,535,536,536,536,535,504,536, \ 536,536,536,536,504,535,536,536,536,535,535,536,536,536,536,536, \ 536,535,536,504,536,535,536,536,536,536,536,504,504,536,504,535, \ 536,504,536,535,536,504,504,504,536,536,504,536,504,536,504,536, \ 536,504,535,536,632,535,536,536,535,536,536,536,536,536,632,632, \ 536,631,536,536,535,536,536,536,536,535,536,536,536,631,632,632, \ 536,536,630,535,536,536,600,632,631,600,536,536,536,536,535,632, \ 536,598,536,600,536,631,600,568,632,568,568,568,568,568,664,566, \ 568,568,632,632,664,568,664,663,632,629,632,535,600,536,536,536, \ 632,536,536,599,536,630,536,632,631,632,600,600,600,664,600,664, \ 664,632,600,599,664,600,662,663,664,599,598,616,632,625,632,630, \ 628,627,630,631,632,663,632,631,632,630,632,631,632,626,632,632, \ 632,663,631,631,632,632,632,664,632,632,600,632,632,600,632,632, \ 600,600,632,632,632,662,663,663,663,600,664,632,664,663,664,632 \ #define MPFR_DIVHIGH_TAB \ 0,1,2,3,4,5,6,7,8,9,10,11,12,13,12,13, \ 14,15,16,13,14,14,14,15,15,17,17,17,19,19,19,19, \ 23,23,19,25,23,25,23,25,25,22,26,28,25,28,25,25, \ 28,27,31,27,29,28,33,31,32,33,31,32,33,33,35,35, \ 35,39,37,43,39,37,39,41,39,40,39,40,41,45,41,47, \ 45,45,47,43,44,45,50,54,49,46,53,47,55,56,52,55, \ 52,60,60,52,60,64,62,55,55,62,55,58,56,64,61,59, \ 63,63,64,59,60,60,63,64,64,63,64,64,68,68,66,66, \ 68,69,71,71,70,71,71,72,78,74,74,71,72,78,78,74, \ 76,77,78,79,78,80,79,79,84,83,80,80,82,95,96,83, \ 92,92,88,91,92,84,95,95,92,96,94,91,94,92,96,94, \ 96,96,96,104,94,94,112,112,104,112,112,112,96,112,112,112, \ 112,112,110,104,112,112,112,111,112,108,110,120,112,112,112,112, \ 112,112,120,112,120,120,112,120,120,120,120,120,128,120,120,116, \ 128,128,124,128,120,128,128,120,120,120,128,120,128,120,124,128, \ 128,128,128,127,128,128,126,128,128,128,128,127,136,128,138,137, \ 137,135,138,138,138,137,135,138,150,150,138,147,150,138,150,150, \ 150,150,160,160,156,150,156,148,150,158,162,160,161,160,150,160, \ 160,160,168,156,156,160,168,173,162,156,180,160,160,157,168,160, \ 160,160,162,168,168,160,184,162,184,162,160,160,174,160,184,180, \ 184,184,180,184,184,186,180,184,184,184,184,184,186,188,188,192, \ 185,184,184,186,192,192,192,186,182,192,192,185,184,184,192,208, \ 192,184,184,180,192,184,192,186,186,184,192,186,186,191,186,185, \ 192,216,192,192,208,192,191,192,192,192,204,192,207,192,216,208, \ 208,216,216,197,196,216,216,208,216,222,216,222,208,222,208,222, \ 224,208,209,216,216,209,224,207,216,222,224,224,208,223,224,224, \ 224,216,222,222,224,224,224,216,224,216,222,221,222,224,224,224, \ 224,224,224,232,224,222,224,232,225,233,224,240,224,232,256,240, \ 256,256,240,255,240,256,256,240,232,240,232,232,240,232,256,256, \ 256,256,256,256,256,256,255,256,256,240,256,240,256,240,254,252, \ 256,256,256,256,256,256,256,256,254,256,256,282,276,256,254,256, \ 256,255,282,256,255,256,255,256,255,288,256,264,264,256,274,276, \ 276,269,273,273,282,269,276,276,276,276,273,282,276,282,276,277, \ 280,312,282,281,288,282,276,282,276,276,288,312,276,288,300,276, \ 304,276,288,300,304,312,312,312,312,312,306,312,312,312,316,300, \ 324,312,320,320,300,312,312,312,312,324,312,330,300,320,312,312, \ 316,318,324,324,318,312,312,324,336,336,324,312,312,336,324,320, \ 312,336,312,324,336,336,336,368,324,348,312,336,368,312,312,320, \ 368,372,368,312,324,376,372,312,368,376,376,372,370,372,318,376, \ 320,372,372,368,372,324,376,376,376,376,368,372,376,376,376,376, \ 372,372,376,376,376,372,384,376,372,368,384,376,376,370,376,376, \ 376,371,372,368,384,336,370,370,376,372,376,376,368,376,376,372, \ 376,370,376,368,376,372,376,376,368,376,376,368,368,376,368,368, \ 370,370,372,368,372,376,376,376,376,368,370,368,368,372,376,376, \ 372,376,368,376,376,376,372,376,376,372,376,376,368,376,372,376, \ 372,368,376,370,376,372,376,372,376,376,372,370,376,376,370,372, \ 372,373,376,376,384,384,384,376,376,376,376,384,376,376,384,384, \ 384,416,384,384,408,384,416,384,384,384,384,408,416,416,416,432, \ 408,408,416,408,408,416,408,416,416,416,416,416,416,408,407,440, \ 432,408,416,408,416,440,416,408,416,416,432,416,416,440,416,416, \ 416,440,432,440,408,448,448,408,408,432,440,432,448,416,416,416, \ 440,432,432,416,448,432,465,440,432,440,480,448,416,448,432,432, \ 480,432,448,440,466,448,432,440,432,440,440,440,480,430,448,448, \ 448,439,440,432,438,447,448,440,440,440,448,448,480,432,448,448, \ 448,448,448,447,448,448,448,447,448,448,440,465,448,467,448,448, \ 448,448,464,464,448,448,466,480,480,480,468,480,448,464,480,464, \ 466,466,464,479,480,480,512,480,540,480,496,480,552,512,480,479, \ 504,480,552,552,512,480,504,552,564,512,480,480,504,561,564,564, \ 512,552,560,564,564,480,564,480,552,480,564,564,564,564,536,564, \ 540,564,552,564,564,564,564,552,564,552,564,480,564,552,552,564, \ 512,564,546,564,564,564,512,552,552,559,560,561,564,564,560,560, \ 552,561,564,564,560,564,561,564,564,564,564,564,564,564,564,560, \ 561,560,564,564,560,564,564,552,564,564,564,552,564,564,564,564, \ 564,563,564,564,564,564,560,564,564,564,564,552,564,564,560,564 \ #define MPFR_MUL_THRESHOLD 7 /* limbs */ #define MPFR_SQR_THRESHOLD 12 /* limbs */ #define MPFR_DIV_THRESHOLD 20 /* limbs */ #define MPFR_EXP_2_THRESHOLD 1024 /* bits */ #define MPFR_EXP_THRESHOLD 9670 /* bits */ #define MPFR_SINCOS_THRESHOLD 23808 /* bits */ #define MPFR_AI_THRESHOLD1 -13250 /* threshold for negative input of mpfr_ai */ #define MPFR_AI_THRESHOLD2 1430 #define MPFR_AI_THRESHOLD3 21190 /* Tuneup completed successfully, took 770 seconds */