mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-26 07:51:06 +00:00
94 lines
2.9 KiB
Diff
94 lines
2.9 KiB
Diff
|
diff -Naurd mpfr-3.1.0-a/PATCHES mpfr-3.1.0-b/PATCHES
|
||
|
--- mpfr-3.1.0-a/PATCHES 2012-04-27 01:13:15.000000000 +0000
|
||
|
+++ mpfr-3.1.0-b/PATCHES 2012-04-27 01:13:15.000000000 +0000
|
||
|
@@ -0,0 +1 @@
|
||
|
+gamma-underflow
|
||
|
diff -Naurd mpfr-3.1.0-a/VERSION mpfr-3.1.0-b/VERSION
|
||
|
--- mpfr-3.1.0-a/VERSION 2012-03-12 11:59:47.000000000 +0000
|
||
|
+++ mpfr-3.1.0-b/VERSION 2012-04-27 01:13:15.000000000 +0000
|
||
|
@@ -1 +1 @@
|
||
|
-3.1.0-p8
|
||
|
+3.1.0-p9
|
||
|
diff -Naurd mpfr-3.1.0-a/src/gamma.c mpfr-3.1.0-b/src/gamma.c
|
||
|
--- mpfr-3.1.0-a/src/gamma.c 2011-10-03 08:17:09.000000000 +0000
|
||
|
+++ mpfr-3.1.0-b/src/gamma.c 2012-04-27 01:13:15.000000000 +0000
|
||
|
@@ -296,7 +296,7 @@
|
||
|
/* we want an upper bound for x * [log(2-x)-1].
|
||
|
since x < 0, we need a lower bound on log(2-x) */
|
||
|
mpfr_ui_sub (xp, 2, x, MPFR_RNDD);
|
||
|
- mpfr_log2 (xp, xp, MPFR_RNDD);
|
||
|
+ mpfr_log (xp, xp, MPFR_RNDD);
|
||
|
mpfr_sub_ui (xp, xp, 1, MPFR_RNDD);
|
||
|
mpfr_mul (xp, xp, x, MPFR_RNDU);
|
||
|
|
||
|
diff -Naurd mpfr-3.1.0-a/src/mpfr.h mpfr-3.1.0-b/src/mpfr.h
|
||
|
--- mpfr-3.1.0-a/src/mpfr.h 2012-03-12 11:59:47.000000000 +0000
|
||
|
+++ mpfr-3.1.0-b/src/mpfr.h 2012-04-27 01:13:15.000000000 +0000
|
||
|
@@ -27,7 +27,7 @@
|
||
|
#define MPFR_VERSION_MAJOR 3
|
||
|
#define MPFR_VERSION_MINOR 1
|
||
|
#define MPFR_VERSION_PATCHLEVEL 0
|
||
|
-#define MPFR_VERSION_STRING "3.1.0-p8"
|
||
|
+#define MPFR_VERSION_STRING "3.1.0-p9"
|
||
|
|
||
|
/* Macros dealing with MPFR VERSION */
|
||
|
#define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
|
||
|
diff -Naurd mpfr-3.1.0-a/src/version.c mpfr-3.1.0-b/src/version.c
|
||
|
--- mpfr-3.1.0-a/src/version.c 2012-03-12 11:59:47.000000000 +0000
|
||
|
+++ mpfr-3.1.0-b/src/version.c 2012-04-27 01:13:15.000000000 +0000
|
||
|
@@ -25,5 +25,5 @@
|
||
|
const char *
|
||
|
mpfr_get_version (void)
|
||
|
{
|
||
|
- return "3.1.0-p8";
|
||
|
+ return "3.1.0-p9";
|
||
|
}
|
||
|
diff -Naurd mpfr-3.1.0-a/tests/tgamma.c mpfr-3.1.0-b/tests/tgamma.c
|
||
|
--- mpfr-3.1.0-a/tests/tgamma.c 2011-10-03 08:17:14.000000000 +0000
|
||
|
+++ mpfr-3.1.0-b/tests/tgamma.c 2012-04-27 01:13:15.000000000 +0000
|
||
|
@@ -478,6 +478,36 @@
|
||
|
mpfr_clear (x);
|
||
|
}
|
||
|
|
||
|
+/* bug found by Giridhar Tammana */
|
||
|
+static void
|
||
|
+test20120426 (void)
|
||
|
+{
|
||
|
+ mpfr_t xa, xb;
|
||
|
+ int i;
|
||
|
+ mpfr_exp_t emin;
|
||
|
+
|
||
|
+ mpfr_init2 (xa, 53);
|
||
|
+ mpfr_init2 (xb, 53);
|
||
|
+ mpfr_set_d (xb, -168.5, MPFR_RNDN);
|
||
|
+ emin = mpfr_get_emin ();
|
||
|
+ mpfr_set_emin (-1073);
|
||
|
+ i = mpfr_gamma (xa, xb, MPFR_RNDN);
|
||
|
+ i = mpfr_subnormalize (xa, i, MPFR_RNDN); /* new ternary value */
|
||
|
+ mpfr_set_str (xb, "-9.5737343987585366746184749943e-304", 10, MPFR_RNDN);
|
||
|
+ if (!((i > 0) && (mpfr_cmp (xa, xb) == 0)))
|
||
|
+ {
|
||
|
+ printf ("Error in test20120426, i=%d\n", i);
|
||
|
+ printf ("expected ");
|
||
|
+ mpfr_print_binary (xb); putchar ('\n');
|
||
|
+ printf ("got ");
|
||
|
+ mpfr_print_binary (xa); putchar ('\n');
|
||
|
+ exit (1);
|
||
|
+ }
|
||
|
+ mpfr_set_emin (emin);
|
||
|
+ mpfr_clear (xa);
|
||
|
+ mpfr_clear (xb);
|
||
|
+}
|
||
|
+
|
||
|
static void
|
||
|
exprange (void)
|
||
|
{
|
||
|
@@ -821,6 +851,7 @@
|
||
|
gamma_integer ();
|
||
|
test20071231 ();
|
||
|
test20100709 ();
|
||
|
+ test20120426 ();
|
||
|
|
||
|
data_check ("data/gamma", mpfr_gamma, "mpfr_gamma");
|
||
|
|