diff options
Diffstat (limited to 'src/x86_64/core2/mparam.h')
-rw-r--r-- | src/x86_64/core2/mparam.h | 236 |
1 files changed, 236 insertions, 0 deletions
diff --git a/src/x86_64/core2/mparam.h b/src/x86_64/core2/mparam.h new file mode 100644 index 0000000..0cf85d0 --- /dev/null +++ b/src/x86_64/core2/mparam.h @@ -0,0 +1,236 @@ +/* Various Thresholds of MPFR, not exported. -*- mode: C -*- + +Copyright 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 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 */ |