summaryrefslogtreecommitdiffstats
path: root/source/l/mpfr/patches/patch04
diff options
context:
space:
mode:
Diffstat (limited to 'source/l/mpfr/patches/patch04')
-rw-r--r--source/l/mpfr/patches/patch0475
1 files changed, 75 insertions, 0 deletions
diff --git a/source/l/mpfr/patches/patch04 b/source/l/mpfr/patches/patch04
new file mode 100644
index 000000000..5cab7dfd4
--- /dev/null
+++ b/source/l/mpfr/patches/patch04
@@ -0,0 +1,75 @@
+diff -Naurd mpfr-4.2.0-a/PATCHES mpfr-4.2.0-b/PATCHES
+--- mpfr-4.2.0-a/PATCHES 2023-04-17 21:19:01.988530337 +0000
++++ mpfr-4.2.0-b/PATCHES 2023-04-17 21:19:02.032530276 +0000
+@@ -0,0 +1 @@
++rec_sqrt-zivloop
+diff -Naurd mpfr-4.2.0-a/VERSION mpfr-4.2.0-b/VERSION
+--- mpfr-4.2.0-a/VERSION 2023-04-17 21:18:26.904579122 +0000
++++ mpfr-4.2.0-b/VERSION 2023-04-17 21:19:02.032530276 +0000
+@@ -1 +1 @@
+-4.2.0-p3
++4.2.0-p4
+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-04-17 21:18:26.900579128 +0000
++++ mpfr-4.2.0-b/src/mpfr.h 2023-04-17 21:19:02.032530276 +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-p3"
++#define MPFR_VERSION_STRING "4.2.0-p4"
+
+ /* User macros:
+ MPFR_USE_FILE: Define it to make MPFR define functions dealing
+diff -Naurd mpfr-4.2.0-a/src/rec_sqrt.c mpfr-4.2.0-b/src/rec_sqrt.c
+--- mpfr-4.2.0-a/src/rec_sqrt.c 2023-01-05 17:09:48.000000000 +0000
++++ mpfr-4.2.0-b/src/rec_sqrt.c 2023-04-17 21:19:02.024530287 +0000
+@@ -463,6 +463,7 @@
+ int s, cy, inex;
+ mpfr_limb_ptr x;
+ MPFR_TMP_DECL(marker);
++ MPFR_ZIV_DECL (loop);
+
+ MPFR_LOG_FUNC
+ (("x[%Pu]=%.*Rg rnd=%d", mpfr_get_prec (u), mpfr_log_prec, u, rnd_mode),
+@@ -530,6 +531,7 @@
+ wp = rp + 11;
+ if (wp < rn * GMP_NUMB_BITS)
+ wp = rn * GMP_NUMB_BITS;
++ MPFR_ZIV_INIT (loop, wp);
+ for (;;)
+ {
+ MPFR_TMP_MARK (marker);
+@@ -561,8 +563,9 @@
+ }
+ MPFR_TMP_FREE(marker);
+
+- wp += GMP_NUMB_BITS;
++ MPFR_ZIV_NEXT (loop, wp);
+ }
++ MPFR_ZIV_FREE (loop);
+ cy = mpfr_round_raw (MPFR_MANT(r), x, wp, 0, rp, rnd_mode, &inex);
+ MPFR_EXP(r) = - (MPFR_EXP(u) - 1 - s) / 2;
+ if (MPFR_UNLIKELY(cy != 0))
+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-04-17 21:18:26.904579122 +0000
++++ mpfr-4.2.0-b/src/version.c 2023-04-17 21:19:02.032530276 +0000
+@@ -25,5 +25,5 @@
+ const char *
+ mpfr_get_version (void)
+ {
+- return "4.2.0-p3";
++ return "4.2.0-p4";
+ }
+diff -Naurd mpfr-4.2.0-a/tests/trec_sqrt.c mpfr-4.2.0-b/tests/trec_sqrt.c
+--- mpfr-4.2.0-a/tests/trec_sqrt.c 2023-01-05 17:09:48.000000000 +0000
++++ mpfr-4.2.0-b/tests/trec_sqrt.c 2023-04-17 21:19:02.028530282 +0000
+@@ -242,6 +242,8 @@
+ data_check ("data/rec_sqrt", mpfr_rec_sqrt, "mpfr_rec_sqrt");
+ bad_cases (mpfr_rec_sqrt, pm2, "mpfr_rec_sqrt", 0, -256, 255, 4, 128,
+ 800, 50);
++ bad_cases (mpfr_rec_sqrt, pm2, "mpfr_rec_sqrt", 0, -256, 255, 9999, 9999,
++ 120000, 1);
+
+ end:
+ tests_end_mpfr ();