aboutsummaryrefslogtreecommitdiff
path: root/src/x86_64
diff options
context:
space:
mode:
Diffstat (limited to 'src/x86_64')
-rw-r--r--src/x86_64/core2/mparam.h236
-rw-r--r--src/x86_64/pentium4/mparam.h160
2 files changed, 396 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 */
diff --git a/src/x86_64/pentium4/mparam.h b/src/x86_64/pentium4/mparam.h
new file mode 100644
index 0000000..8412940
--- /dev/null
+++ b/src/x86_64/pentium4/mparam.h
@@ -0,0 +1,160 @@
+/* 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, 2009-02-09, gcc 4.3 */
+/* crumble.loria.fr with gmp-4.2.4 */
+
+
+#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,19,20,20,24,26,0,0,24,26,28,27,26,28, \
+ 30,32,32,32,30,30,34,34,32,34,34,36,32,34,36,34, \
+ 35,0,0,36,36,0,37,48,0,0,48,48,51,0,48,52, \
+ 51,0,52,52,51,55,52,56,55,0,56,60,59,59,60,64, \
+ 63,63,64,64,67,67,68,72,63,71,72,60,67,67,60,72, \
+ 63,61,64,64,63,71,68,68,71,67,68,68,67,71,68,72, \
+ 68,68,72,72,76,76,69,69,72,72,71,103,104,72,73,96, \
+ 103,94,95,104,96,96,94,103,104,104,96,96,103,103,104,104, \
+ 120,120,103,103,104,104,120,111,103,112,104,104,120,120,109,103, \
+ 119,119,120,120,127,112,128,128,120,120,136,127,128,128,120,126, \
+ 121,129,126,134,135,135,136,120,113,113,114,118,127,127,136,120, \
+ 121,125,126,118,119,119,120,136,121,153,122,122,127,119,120,128, \
+ 165,153,162,134,163,159,136,136,153,153,134,158,135,135,136,136, \
+ 153,153,162,158,159,159,156,152,153,189,158,186,187,163,156,168, \
+ 189,159,165,165,176,176,172,172,183,173,164,174,165,165,176,176, \
+ 177,177,183,188,189,189,180,185,176,186,177,177,193,188,189,189, \
+ 200,200,201,201,177,207,188,198,199,189,200,200,186,201,207,207, \
+ 213,203,189,189,200,210,201,196,212,207,208,213,189,199,200,200, \
+ 203,209,216,204,199,223,206,200,213,225,208,208,203,203,216,204, \
+ 205,205,224,212,213,213,184,208,209,203,198,210,199,187,206,200, \
+ 201,189,208,208,203,185,216,198,187,199,200,212,213,213,202,208, \
+ 203,197,198,198,199,211,212,212,285,213,280,274,227,275,288,204, \
+ 284,284,278,285,307,216,273,308,309,309,275,219,213,311,305,284, \
+ 306,306,307,307,308,308,309,309,303,303,311,311,284,312,285,285, \
+ 307,286,287,308,309,309,303,303,304,332,305,305,306,299,328,300, \
+ 308,301,309,309,303,310,311,311,333,305,285,285,307,314,308,308, \
+ 321,305,354,322,331,355,332,308,309,333,334,334,303,303,304,312, \
+ 305,305,306,306,307,307,308,308,309,309,302,302,375,311,312,360, \
+ 353,305,330,354,307,355,380,308,357,309,358,358,359,311,312,312, \
+ 345,329,378,354,331,355,356,356,357,357,374,334,375,311,336,384, \
+ 356,329,330,357,331,358,404,332,369,333,334,334,335,353,354,354, \
+ 355,382,356,347,357,357,358,358,377,359,405,333,352,379,353,353, \
+ 354,354,355,355,356,356,357,357,358,376,359,377,369,360,379,370, \
+ 380,380,354,372,355,382,383,401,357,357,376,358,377,377,405,378, \
+ 379,379,380,380,381,381,402,402,353,403,404,404,405,405,376,376, \
+ 377,357,368,358,379,379,360,400,401,381,372,452,373,383,454,384, \
+ 405,405,456,356,357,357,358,378,379,379,490,370,381,381,492,402, \
+ 463,403,404,404,405,405,456,456,527,357,448,448,489,449,400,450, \
+ 453,453,454,454,455,455,456,456,468,490,491,491,492,404,405,482, \
+ 472,450,451,462,463,463,464,453,465,465,455,455,456,489,490,490, \
+ 491,491,492,492,405,526,483,527,484,484,452,452,486,453,454,454, \
+ 455,477,456,522,490,490,491,524,481,492,526,482,483,527,495,517, \
+ 521,533,522,474,499,523,524,524,489,489,490,526,527,527,528,528, \
+ 529,529,518,554,495,483,496,472,521,557,486,522,535,535,524,512, \
+ 525,561,526,526,491,527,528,528,529,517,518,554,531,519,544,520, \
+ 521,521,558,546,559,535,560,536,489,573,490,514,491,563,492,492, \
+ 528,489,555,555,491,491,492,596,597,545,546,546,560,599,600,600, \
+ 523,562,563,511,564,525,526,630,553,527,528,528,607,555,595,543, \
+ 544,531,532,571,559,559,599,560,535,535,562,562,563,537,564,564, \
+ 565,630,514,631,528,632,555,542,634,595,557,557,597,558,559,559, \
+ 571,599,530,530,559,545,546,616,561,547,548,534,633,563,564,564, \
+ 607,537,594,636,567,539,624,554,555,555,598,598,557,557,558,572, \
+ 559,559,560,574,603,561,562,632,563,563,578,592,593,607,580,608, \
+ 553,609,624,596,597,597,598,612,627,585,600,614,573,629,616,602, \
+ 599,599,585,585,616,616,587,632,603,603,634,634,635,605,636,621, \
+ 622,607,623,593,609,609,625,610,611,626,612,597,628,598,599,599, \
+ 600,630,631,616,602,632,633,603,634,634,635,635,636,636,607,637, \
+ 668,608,609,609,610,610,611,611,597,657,628,628,629,629,630,630, \
+ 609,625,562,626,627,563,564,628,629,629,630,630,631,599,664,632, \
+ 681,633,634,634,635,635,620,636,621,621,622,622,623,639,672,592, \
+ 609,641,594,594,595,627,596,564,629,597,598,598,631,599,600,600, \
+ 601,681,618,634,603,635,636,636,557,621,622,606,623,623,608,608 \
+
+#define MPFR_SQRHIGH_TAB \
+ -1,-1,-1,-1,-1,-1,-1,-1,0,0,0,0,8,8,9,9, \
+ 10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17, \
+ 18,18,19,19,20,20,21,21,22,22,23,23,26,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,38,39,39,39,39,40,40,41,41, \
+ 42,42,43,43,44,44,45,46,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,68,64,64,65,65, \
+ 66,68,67,69,68,68,71,69,70,75,76,76,72,72,73,73, \
+ 74,82,75,80,78,76,77,77,78,83,79,81,82,80,81,81, \
+ 82,82,83,85,84,84,85,85,86,86,87,87,88,88,89,89, \
+ 90,92,91,93,94,92,93,93,94,94,95,95,96,96,97,97, \
+ 98,98,99,99,100,100,101,101,102,102,103,103,104,104,105,105, \
+ 106,106,107,107,108,108,109,112,110,110,111,118,112,112,113,113, \
+ 114,114,115,122,123,116,117,117,118,118,119,119,120,120,121,121, \
+ 122,122,123,123,124,124,125,125,126,126,127,127,128,128,129,129, \
+ 130,154,135,131,132,132,133,133,134,134,135,135,136,140,151,137, \
+ 142,138,139,143,144,154,155,150,151,156,152,143,153,158,145,145, \
+ 165,146,147,147,152,162,149,149,150,150,151,151,152,171,153,153, \
+ 154,154,155,155,156,156,157,157,158,158,159,159,160,160,161,161, \
+ 162,162,163,163,164,164,165,165,166,166,167,167,168,168,169,169, \
+ 170,170,171,171,172,183,173,173,174,174,175,175,176,187,194,182, \
+ 183,178,179,179,180,180,181,181,182,182,183,183,195,184,185,185, \
+ 186,197,187,187,188,188,189,189,190,190,191,191,192,192,193,204, \
+ 207,200,201,208,209,196,197,203,204,198,199,199,200,200,201,201, \
+ 202,215,216,230,217,210,211,218,212,206,207,207,208,208,209,209, \
+ 210,230,231,231,232,225,226,226,227,227,228,242,222,257,217,217, \
+ 218,245,246,219,220,240,241,234,235,235,236,264,230,258,225,225, \
+ 226,226,227,227,228,228,229,260,261,230,231,270,247,232,233,233, \
+ 234,234,235,235,236,236,237,237,238,238,239,239,240,240,241,241, \
+ 242,242,243,243,244,244,245,245,246,246,247,247,248,248,249,249, \
+ 250,250,251,251,252,252,253,253,254,254,255,255,256,256,257,257, \
+ 258,258,259,259,260,260,261,261,262,262,263,263,264,264,265,265, \
+ 266,266,267,267,268,268,269,269,270,270,279,271,272,272,273,273, \
+ 274,274,275,275,276,276,277,277,278,278,279,279,280,280,281,281, \
+ 282,282,283,283,284,284,285,285,294,286,287,287,288,288,289,289, \
+ 290,290,291,291,292,292,293,293,294,294,295,295,296,296,297,297, \
+ 298,298,299,299,300,300,301,301,302,302,303,303,304,304,305,305, \
+ 306,306,307,307,308,308,309,309,310,310,311,311,312,312,313,313, \
+ 314,314,315,315,316,316,317,317,318,318,319,319,320,320,321,321, \
+ 322,322,323,323,324,324,325,325,326,326,327,337,349,338,329,329, \
+ 330,330,331,331,332,332,333,333,334,334,335,335,336,336,337,337, \
+ 338,338,339,360,340,340,341,341,342,342,343,343,344,354,355,345, \
+ 346,346,368,368,369,369,359,349,393,382,383,361,362,362,363,363, \
+ 365,365,366,390,367,391,380,404,358,393,406,382,383,395,396,396, \
+ 385,409,386,410,387,399,388,412,413,401,390,367,368,403,404,416, \
+ 417,405,382,406,407,407,408,408,409,409,410,410,435,411,412,412, \
+ 413,413,414,379,439,427,428,392,393,441,442,430,479,455,444,432, \
+ 437,386,451,387,465,439,427,389,390,454,455,455,404,417,444,444, \
+ 394,394,395,446,460,460,461,487,410,475,399,476,477,464,401,465, \
+ 402,492,403,403,404,404,405,405,406,406,407,419,408,408,409,409, \
+ 410,410,411,411,412,412,413,413,414,414,415,415,416,416,417,417, \
+ 418,418,419,419,420,420,421,421,422,422,423,423,424,424,425,508, \
+ 426,426,427,427,428,428,429,429,430,430,431,431,432,432,433,433, \
+ 434,434,435,435,436,436,437,437,438,438,439,536,440,440,441,441, \
+ 442,442,443,443,444,444,445,445,446,446,447,447,448,448,449,476, \
+ 450,450,451,451,452,452,482,453,454,454,455,455,456,456,457,457, \
+ 458,458,459,459,460,460,461,461,462,462,463,463,464,464,465,465, \
+ 466,466,467,467,468,468,469,469,470,470,471,471,472,472,473,473, \
+ 474,474,475,475,476,476,477,477,478,478,479,479,480,480,481,481, \
+ 482,482,483,483,484,484,485,485,486,486,487,487,488,488,489,489, \
+ 490,490,491,491,492,492,493,493,494,494,495,495,496,496,497,497, \
+ 498,498,499,499,500,500,501,501,502,502,503,503,504,504,505,505, \
+ 506,506,507,507,508,508,509,509,510,510,511,511,512,512,513,513 \
+
+#define MPFR_MUL_THRESHOLD 8 /* limbs */
+#define MPFR_EXP_2_THRESHOLD 519 /* bits */
+#define MPFR_EXP_THRESHOLD 6533 /* bits */