mirror of
git://slackware.nl/current.git
synced 2025-01-28 08:02:25 +01:00
390 lines
14 KiB
Text
390 lines
14 KiB
Text
|
diff -Naurd mpfr-4.2.0-a/PATCHES mpfr-4.2.0-b/PATCHES
|
||
|
--- mpfr-4.2.0-a/PATCHES 2023-05-12 15:06:11.789722083 +0000
|
||
|
+++ mpfr-4.2.0-b/PATCHES 2023-05-12 15:06:11.885721962 +0000
|
||
|
@@ -0,0 +1 @@
|
||
|
+tests-reuse
|
||
|
diff -Naurd mpfr-4.2.0-a/VERSION mpfr-4.2.0-b/VERSION
|
||
|
--- mpfr-4.2.0-a/VERSION 2023-05-12 15:05:01.085811835 +0000
|
||
|
+++ mpfr-4.2.0-b/VERSION 2023-05-12 15:06:11.885721962 +0000
|
||
|
@@ -1 +1 @@
|
||
|
-4.2.0-p5
|
||
|
+4.2.0-p6
|
||
|
diff -Naurd mpfr-4.2.0-a/src/mpfr.h mpfr-4.2.0-b/src/mpfr.h
|
||
|
--- mpfr-4.2.0-a/src/mpfr.h 2023-05-12 15:05:01.077811846 +0000
|
||
|
+++ mpfr-4.2.0-b/src/mpfr.h 2023-05-12 15:06:11.877721972 +0000
|
||
|
@@ -27,7 +27,7 @@
|
||
|
#define MPFR_VERSION_MAJOR 4
|
||
|
#define MPFR_VERSION_MINOR 2
|
||
|
#define MPFR_VERSION_PATCHLEVEL 0
|
||
|
-#define MPFR_VERSION_STRING "4.2.0-p5"
|
||
|
+#define MPFR_VERSION_STRING "4.2.0-p6"
|
||
|
|
||
|
/* User macros:
|
||
|
MPFR_USE_FILE: Define it to make MPFR define functions dealing
|
||
|
diff -Naurd mpfr-4.2.0-a/src/version.c mpfr-4.2.0-b/src/version.c
|
||
|
--- mpfr-4.2.0-a/src/version.c 2023-05-12 15:05:01.081811839 +0000
|
||
|
+++ mpfr-4.2.0-b/src/version.c 2023-05-12 15:06:11.885721962 +0000
|
||
|
@@ -25,5 +25,5 @@
|
||
|
const char *
|
||
|
mpfr_get_version (void)
|
||
|
{
|
||
|
- return "4.2.0-p5";
|
||
|
+ return "4.2.0-p6";
|
||
|
}
|
||
|
diff -Naurd mpfr-4.2.0-a/tests/reuse.c mpfr-4.2.0-b/tests/reuse.c
|
||
|
--- mpfr-4.2.0-a/tests/reuse.c 2023-01-05 17:09:48.000000000 +0000
|
||
|
+++ mpfr-4.2.0-b/tests/reuse.c 2023-05-12 15:06:11.869721983 +0000
|
||
|
@@ -78,22 +78,16 @@
|
||
|
mpfr_const_pi (x, MPFR_RNDN);
|
||
|
MPFR_SET_EXP (x, MPFR_GET_EXP (x)-1);
|
||
|
break;
|
||
|
- default:
|
||
|
+ case 11:
|
||
|
mpfr_urandomb (x, RANDS);
|
||
|
if (RAND_BOOL ())
|
||
|
mpfr_neg (x, x, MPFR_RNDN);
|
||
|
break;
|
||
|
+ default:
|
||
|
+ MPFR_ASSERTN (0);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
-/* same as mpfr_cmp, but returns 0 for both NaN's */
|
||
|
-static int
|
||
|
-mpfr_compare (mpfr_srcptr a, mpfr_srcptr b)
|
||
|
-{
|
||
|
- return (MPFR_IS_NAN(a)) ? !MPFR_IS_NAN(b) :
|
||
|
- (MPFR_IS_NAN(b) || mpfr_cmp(a, b));
|
||
|
-}
|
||
|
-
|
||
|
static void
|
||
|
test3 (int (*testfunc)(mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_rnd_t),
|
||
|
const char *foo, mpfr_prec_t prec, mpfr_rnd_t rnd)
|
||
|
@@ -112,10 +106,10 @@
|
||
|
|
||
|
/* for each variable, consider each of the following 6 possibilities:
|
||
|
NaN, +Infinity, -Infinity, +0, -0 or a random number */
|
||
|
- for (i=0; i < SPECIAL_MAX*SPECIAL_MAX ; i++)
|
||
|
+ for (i = 0; i < SPECIAL_MAX * SPECIAL_MAX; i++)
|
||
|
{
|
||
|
- set_special (ref2, i%SPECIAL_MAX);
|
||
|
- set_special (ref3, i/SPECIAL_MAX);
|
||
|
+ set_special (ref2, i % SPECIAL_MAX);
|
||
|
+ set_special (ref3, i / SPECIAL_MAX);
|
||
|
|
||
|
/* reference call: foo(a, b, c) */
|
||
|
testfunc (ref1, ref2, ref3, rnd);
|
||
|
@@ -124,11 +118,11 @@
|
||
|
mpfr_set (res1, ref2, rnd); /* exact operation */
|
||
|
testfunc (res1, res1, ref3, rnd);
|
||
|
|
||
|
- if (mpfr_compare (res1, ref1))
|
||
|
+ if (! SAME_VAL (res1, ref1))
|
||
|
{
|
||
|
printf ("Error for %s(a, a, c) with %s for ", foo,
|
||
|
mpfr_print_rnd_mode (rnd));
|
||
|
- DISP("a=",ref2); DISP2(", c=",ref3);
|
||
|
+ DISP("a=", ref2); DISP2(", c=", ref3);
|
||
|
printf ("expected "); mpfr_dump (ref1);
|
||
|
printf ("got "); mpfr_dump (res1);
|
||
|
exit (1);
|
||
|
@@ -137,11 +131,12 @@
|
||
|
/* foo(a, b, a) */
|
||
|
mpfr_set (res1, ref3, rnd);
|
||
|
testfunc (res1, ref2, res1, rnd);
|
||
|
- if (mpfr_compare (res1, ref1))
|
||
|
+ if (! SAME_VAL (res1, ref1))
|
||
|
{
|
||
|
printf ("Error for %s(a, b, a) for ", foo);
|
||
|
- DISP("b=",ref2); DISP2(", a=", ref3);
|
||
|
- DISP("expected ", ref1); DISP2(", got ",res1);
|
||
|
+ DISP("b=", ref2); DISP2(", a=", ref3);
|
||
|
+ printf ("expected "); mpfr_dump (ref1);
|
||
|
+ printf ("got "); mpfr_dump (res1);
|
||
|
exit (1);
|
||
|
}
|
||
|
|
||
|
@@ -151,11 +146,12 @@
|
||
|
mpfr_set (res1, ref2, rnd);
|
||
|
testfunc (res1, res1, res1, rnd);
|
||
|
|
||
|
- if (mpfr_compare (res1, ref1))
|
||
|
+ if (! SAME_VAL (res1, ref1))
|
||
|
{
|
||
|
printf ("Error for %s(a, a, a) for ", foo);
|
||
|
- DISP2("a=",ref2);
|
||
|
- DISP("expected ", ref1); DISP2(", got ", res1);
|
||
|
+ DISP2("a=", ref2);
|
||
|
+ printf ("expected "); mpfr_dump (ref1);
|
||
|
+ printf ("got "); mpfr_dump (res1);
|
||
|
exit (1);
|
||
|
}
|
||
|
}
|
||
|
@@ -187,13 +183,13 @@
|
||
|
/* for each variable, consider each of the following 6 possibilities:
|
||
|
NaN, +Infinity, -Infinity, +0, -0 or a random number */
|
||
|
|
||
|
- for (i=0; i<SPECIAL_MAX; i++)
|
||
|
+ for (i = 0; i < SPECIAL_MAX; i++)
|
||
|
{
|
||
|
set_special (op1, i);
|
||
|
- for (j=0; j<SPECIAL_MAX; j++)
|
||
|
+ for (j = 0; j < SPECIAL_MAX; j++)
|
||
|
{
|
||
|
set_special (op2, j);
|
||
|
- for (k=0; k<SPECIAL_MAX; k++)
|
||
|
+ for (k = 0; k < SPECIAL_MAX; k++)
|
||
|
{
|
||
|
set_special (op3, k);
|
||
|
|
||
|
@@ -204,11 +200,12 @@
|
||
|
mpfr_set (res, op1, rnd); /* exact operation */
|
||
|
testfunc (res, res, op2, op3, rnd);
|
||
|
|
||
|
- if (mpfr_compare (res, ref))
|
||
|
+ if (! SAME_VAL (res, ref))
|
||
|
{
|
||
|
printf ("Error for %s(a, a, b, c) for ", foo);
|
||
|
DISP("a=", op1); DISP(", b=", op2); DISP2(", c=", op3);
|
||
|
- DISP("expected ", ref); DISP2(", got ", res);
|
||
|
+ printf ("expected "); mpfr_dump (ref);
|
||
|
+ printf ("got "); mpfr_dump (res);
|
||
|
exit (1);
|
||
|
}
|
||
|
|
||
|
@@ -216,11 +213,12 @@
|
||
|
mpfr_set (res, op2, rnd);
|
||
|
testfunc (res, op1, res, op3, rnd);
|
||
|
|
||
|
- if (mpfr_compare (res, ref))
|
||
|
+ if (! SAME_VAL (res, ref))
|
||
|
{
|
||
|
printf ("Error for %s(a, a, b, c) for ", foo);
|
||
|
DISP("a=", op1); DISP(", b=", op2); DISP2(", c=", op3);
|
||
|
- DISP("expected ", ref); DISP2(", got ", res);
|
||
|
+ printf ("expected "); mpfr_dump (ref);
|
||
|
+ printf ("got "); mpfr_dump (res);
|
||
|
exit (1);
|
||
|
}
|
||
|
|
||
|
@@ -228,35 +226,38 @@
|
||
|
mpfr_set (res, op3, rnd);
|
||
|
testfunc (res, op1, op2, res, rnd);
|
||
|
|
||
|
- if (mpfr_compare (res, ref))
|
||
|
+ if (! SAME_VAL (res, ref))
|
||
|
{
|
||
|
printf ("Error for %s(a, a, b, c) for ", foo);
|
||
|
DISP("a=", op1); DISP(", b=", op2); DISP2(", c=", op3);
|
||
|
- DISP("expected ", ref); DISP2(", got ", res);
|
||
|
+ printf ("expected "); mpfr_dump (ref);
|
||
|
+ printf ("got "); mpfr_dump (res);
|
||
|
exit (1);
|
||
|
}
|
||
|
|
||
|
- /* foo(a, a, a,c) */
|
||
|
+ /* foo(a, a, a, c) */
|
||
|
testfunc (ref, op1, op1, op3, rnd);
|
||
|
mpfr_set (res, op1, rnd);
|
||
|
testfunc (res, res, res, op3, rnd);
|
||
|
- if (mpfr_compare (res, ref))
|
||
|
+ if (! SAME_VAL (res, ref))
|
||
|
{
|
||
|
printf ("Error for %s(a, a, b, c) for ", foo);
|
||
|
DISP("a=", op1); DISP(", a=", op2); DISP2(", c=", op3);
|
||
|
- DISP("expected ", ref); DISP2(", got ", res);
|
||
|
+ printf ("expected "); mpfr_dump (ref);
|
||
|
+ printf ("got "); mpfr_dump (res);
|
||
|
exit (1);
|
||
|
}
|
||
|
|
||
|
- /* foo(a, a, b,a) */
|
||
|
+ /* foo(a, a, b, a) */
|
||
|
testfunc (ref, op1, op2, op1, rnd);
|
||
|
mpfr_set (res, op1, rnd);
|
||
|
testfunc (res, res, op2, res, rnd);
|
||
|
- if (mpfr_compare (res, ref))
|
||
|
+ if (! SAME_VAL (res, ref))
|
||
|
{
|
||
|
printf ("Error for %s(a, a, b, c) for ", foo);
|
||
|
DISP("a=", op1); DISP(", a=", op2); DISP2(", c=", op3);
|
||
|
- DISP("expected ", ref); DISP2(", got ", res);
|
||
|
+ printf ("expected "); mpfr_dump (ref);
|
||
|
+ printf ("got "); mpfr_dump (res);
|
||
|
exit (1);
|
||
|
}
|
||
|
|
||
|
@@ -264,11 +265,12 @@
|
||
|
testfunc (ref, op1, op2, op2, rnd);
|
||
|
mpfr_set (res, op2, rnd);
|
||
|
testfunc (res, op1, res, res, rnd);
|
||
|
- if (mpfr_compare (res, ref))
|
||
|
+ if (! SAME_VAL (res, ref))
|
||
|
{
|
||
|
printf ("Error for %s(a, a, b, c) for ", foo);
|
||
|
DISP("a=", op1); DISP(", a=", op2); DISP2(", c=", op3);
|
||
|
- DISP("expected ", ref); DISP2(", got ", res);
|
||
|
+ printf ("expected "); mpfr_dump (ref);
|
||
|
+ printf ("got "); mpfr_dump (res);
|
||
|
exit (1);
|
||
|
}
|
||
|
|
||
|
@@ -276,11 +278,12 @@
|
||
|
testfunc (ref, op1, op1, op1, rnd);
|
||
|
mpfr_set (res, op1, rnd);
|
||
|
testfunc (res, res, res, res, rnd);
|
||
|
- if (mpfr_compare (res, ref))
|
||
|
+ if (! SAME_VAL (res, ref))
|
||
|
{
|
||
|
printf ("Error for %s(a, a, a, a) for ", foo);
|
||
|
DISP2("a=", op1);
|
||
|
- DISP("expected ", ref); DISP2(", got ", res);
|
||
|
+ printf ("expected "); mpfr_dump (ref);
|
||
|
+ printf ("got "); mpfr_dump (res);
|
||
|
exit (1);
|
||
|
}
|
||
|
}
|
||
|
@@ -313,10 +316,10 @@
|
||
|
|
||
|
/* ref2 can be NaN, +Inf, -Inf, +0, -0 or any number
|
||
|
ref3 can be 0 or any number */
|
||
|
- for (i=0; i<SPECIAL_MAX*2; i++)
|
||
|
+ for (i = 0; i < SPECIAL_MAX * 2; i++)
|
||
|
{
|
||
|
- set_special (ref2, i%SPECIAL_MAX);
|
||
|
- ref3 = i/SPECIAL_MAX == 0 ? 0 : randlimb ();
|
||
|
+ set_special (ref2, i % SPECIAL_MAX);
|
||
|
+ ref3 = i / SPECIAL_MAX == 0 ? 0 : randlimb ();
|
||
|
|
||
|
/* reference call: foo(a, b, c) */
|
||
|
testfunc (ref1, ref2, ref3, rnd);
|
||
|
@@ -325,10 +328,10 @@
|
||
|
mpfr_set (res1, ref2, rnd); /* exact operation */
|
||
|
testfunc (res1, res1, ref3, rnd);
|
||
|
|
||
|
- if (mpfr_compare (res1, ref1))
|
||
|
+ if (! SAME_VAL (res1, ref1))
|
||
|
{
|
||
|
printf ("Error for %s(a, a, c) for c=%u\n", foo, ref3);
|
||
|
- DISP2("a=",ref2);
|
||
|
+ DISP2("a=", ref2);
|
||
|
printf ("expected "); mpfr_dump (ref1);
|
||
|
printf ("got "); mpfr_dump (res1);
|
||
|
exit (1);
|
||
|
@@ -356,10 +359,10 @@
|
||
|
mpfr_init2 (ref3, prec);
|
||
|
mpfr_init2 (res1, prec);
|
||
|
|
||
|
- for (i=0; i<SPECIAL_MAX*2; i++)
|
||
|
+ for (i = 0; i < SPECIAL_MAX * 2; i++)
|
||
|
{
|
||
|
- set_special (ref3, i%SPECIAL_MAX);
|
||
|
- ref2 = i/SPECIAL_MAX==0 ? 0 : randlimb ();
|
||
|
+ set_special (ref3, i % SPECIAL_MAX);
|
||
|
+ ref2 = i / SPECIAL_MAX == 0 ? 0 : randlimb ();
|
||
|
|
||
|
/* reference call: foo(a, b, c) */
|
||
|
testfunc (ref1, ref2, ref3, rnd);
|
||
|
@@ -367,7 +370,7 @@
|
||
|
/* foo(a, b, a) */
|
||
|
mpfr_set (res1, ref3, rnd); /* exact operation */
|
||
|
testfunc (res1, ref2, res1, rnd);
|
||
|
- if (mpfr_compare (res1, ref1))
|
||
|
+ if (! SAME_VAL (res1, ref1))
|
||
|
{
|
||
|
printf ("Error for %s(a, b, a) for b=%u \n", foo, ref2);
|
||
|
DISP2("a=", ref3);
|
||
|
@@ -397,7 +400,7 @@
|
||
|
mpfr_init2 (ref2, prec);
|
||
|
mpfr_init2 (res1, prec);
|
||
|
|
||
|
- for (i=0; i<SPECIAL_MAX; i++)
|
||
|
+ for (i = 0; i < SPECIAL_MAX; i++)
|
||
|
{
|
||
|
set_special (ref2, i);
|
||
|
|
||
|
@@ -407,7 +410,7 @@
|
||
|
/* foo(a, a) */
|
||
|
mpfr_set (res1, ref2, rnd); /* exact operation */
|
||
|
testfunc (res1, res1, rnd);
|
||
|
- if (mpfr_compare (res1, ref1))
|
||
|
+ if (! SAME_VAL (res1, ref1))
|
||
|
{
|
||
|
printf ("Error for %s(a, a) for ", foo);
|
||
|
DISP2("a=", ref2);
|
||
|
@@ -437,7 +440,7 @@
|
||
|
mpfr_init2 (ref2, prec);
|
||
|
mpfr_init2 (res1, prec);
|
||
|
|
||
|
- for (i=0; i<SPECIAL_MAX; i++)
|
||
|
+ for (i = 0; i < SPECIAL_MAX; i++)
|
||
|
{
|
||
|
set_special (ref2, i);
|
||
|
|
||
|
@@ -447,10 +450,10 @@
|
||
|
/* foo(a, a) */
|
||
|
mpfr_set (res1, ref2, MPFR_RNDN); /* exact operation */
|
||
|
testfunc (res1, res1);
|
||
|
- if (mpfr_compare (res1, ref1))
|
||
|
+ if (! SAME_VAL (res1, ref1))
|
||
|
{
|
||
|
printf ("Error for %s(a, a) for ", foo);
|
||
|
- DISP2("a=",ref2);
|
||
|
+ DISP2("a=", ref2);
|
||
|
DISP("expected", ref1); DISP2(", got ", res1);
|
||
|
exit (1);
|
||
|
}
|
||
|
@@ -479,7 +482,7 @@
|
||
|
mpfr_init2 (res1, prec);
|
||
|
mpfr_init2 (res2, prec);
|
||
|
|
||
|
- for (i=0; i<SPECIAL_MAX; i++)
|
||
|
+ for (i = 0; i < SPECIAL_MAX; i++)
|
||
|
{
|
||
|
set_special (ref3, i);
|
||
|
|
||
|
@@ -489,12 +492,12 @@
|
||
|
/* foo(a, b, a) */
|
||
|
mpfr_set (res1, ref3, rnd); /* exact operation */
|
||
|
testfunc (res1, res2, res1, rnd);
|
||
|
- if (mpfr_compare (res1, ref1) || mpfr_compare (res2, ref2))
|
||
|
+ if (! SAME_VAL (res1, ref1) || ! SAME_VAL (res2, ref2))
|
||
|
{
|
||
|
printf ("Error for %s(a, b, a) for rnd=%s, ", foo,
|
||
|
mpfr_print_rnd_mode (rnd));
|
||
|
- DISP2("a=",ref3);
|
||
|
- DISP("expected (", ref1); DISP(",",ref2);
|
||
|
+ DISP2("a=", ref3);
|
||
|
+ DISP("expected (", ref1); DISP(",", ref2);
|
||
|
DISP("), got (", res1); DISP(",", res2); printf(")\n");
|
||
|
exit (1);
|
||
|
}
|
||
|
@@ -502,11 +505,11 @@
|
||
|
/* foo(a, b, b) */
|
||
|
mpfr_set (res2, ref3, rnd); /* exact operation */
|
||
|
testfunc (res1, res2, res2, rnd);
|
||
|
- if (mpfr_compare (res1, ref1) || mpfr_compare (res2, ref2))
|
||
|
+ if (! SAME_VAL (res1, ref1) || ! SAME_VAL (res2, ref2))
|
||
|
{
|
||
|
printf ("Error for %s(a, b, b) for ", foo);
|
||
|
- DISP2("b=",ref3);
|
||
|
- DISP("expected (", ref1); DISP(",",ref2);
|
||
|
+ DISP2("b=", ref3);
|
||
|
+ DISP("expected (", ref1); DISP(",", ref2);
|
||
|
DISP("), got (", res1); DISP(",", res2); printf(")\n");
|
||
|
exit (1);
|
||
|
}
|
||
|
@@ -561,10 +564,10 @@
|
||
|
mpfr_set (res1, ref2, rnd); /* exact operation */
|
||
|
mpfr_pow (res1, res1, ref3, rnd);
|
||
|
|
||
|
- if (mpfr_compare (res1, ref1))
|
||
|
+ if (! SAME_VAL (res1, ref1))
|
||
|
{
|
||
|
printf ("Error for pow_int(a, a, c) for ");
|
||
|
- DISP("a=",ref2); DISP2(", c=",ref3);
|
||
|
+ DISP("a=", ref2); DISP2(", c=", ref3);
|
||
|
printf ("expected "); mpfr_dump (ref1);
|
||
|
printf ("got "); mpfr_dump (res1);
|
||
|
exit (1);
|