[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gawk-diffs] [SCM] gawk branch, long-double, updated. gawk-4.1.0-157-gbb
From: |
Arnold Robbins |
Subject: |
[gawk-diffs] [SCM] gawk branch, long-double, updated. gawk-4.1.0-157-gbb422f1 |
Date: |
Sun, 06 Oct 2013 18:53:37 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".
The branch, long-double has been updated
via bb422f1b129b1195791907adff9405c388e2d599 (commit)
from 5dcba186aeeda42c108d421a8bdcd244387c8a2b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=bb422f1b129b1195791907adff9405c388e2d599
commit bb422f1b129b1195791907adff9405c388e2d599
Author: Arnold D. Robbins <address@hidden>
Date: Sun Oct 6 21:53:11 2013 +0300
Fix rand and test suite.
diff --git a/ChangeLog b/ChangeLog
index f2b3935..69d0836 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2013-10-06 Arnold D. Robbins <address@hidden>
+
+ * long_double.h (do_rand): Sync code with master code for
+ regular doubles.
+
+ Make tests in misc/ldbl_tests work.
+
2013-02-09 John Haque <address@hidden>
* main.c (main): Added GAWK_FLOAT env. variable.
diff --git a/long_double.h b/long_double.h
index a509c15..ee7c13d 100644
--- a/long_double.h
+++ b/long_double.h
@@ -791,6 +791,8 @@ static char *const state = (char *const) istate;
static NODE *
do_rand(int nargs ATTRIBUTE_UNUSED)
{
+ double tmprand;
+#define RAND_DIVISOR ((double)GAWK_RANDOM_MAX+1.0)
if (firstrand) {
(void) initstate((unsigned) 1, state, SIZEOF_STATE);
/* don't need to srandom(1), initstate() does it for us. */
@@ -802,7 +804,24 @@ do_rand(int nargs ATTRIBUTE_UNUSED)
*
* 0 <= n < 1
*/
- return make_awkldbl((AWKLDBL) (random() % GAWK_RANDOM_MAX) /
GAWK_RANDOM_MAX);
+ /*
+ * Date: Wed, 28 Aug 2013 17:52:46 -0700
+ * From: Bob Jewett <address@hidden>
+ *
+ * Call random() twice to fill in more bits in the value
+ * of the double. Also, there is a bug in random() such
+ * that when the values of successive values are combined
+ * like (rand1*rand2)^2, (rand3*rand4)^2, ... the
+ * resulting time series is not white noise. The
+ * following also seems to fix that bug.
+ *
+ * The add/subtract 0.5 keeps small bits from filling
+ * below 2^-53 in the double, not that anyone should be
+ * looking down there.
+ */
+
+ tmprand = 0.5 + ( (random()/RAND_DIVISOR + random()) / RAND_DIVISOR);
+ return make_awkldbl( (AWKLDBL) (tmprand - 0.5) );
}
/* do_srand --- seed the random number generator */
diff --git a/misc/ldbl_tests/Makefile.am b/misc/ldbl_tests/Makefile.am
index 4be7ed9..411d484 100644
--- a/misc/ldbl_tests/Makefile.am
+++ b/misc/ldbl_tests/Makefile.am
@@ -1539,6 +1539,12 @@ mbprintf3::
$(AWK) -f "$(TESTDIR)"/address@hidden "$(TESTDIR)"/address@hidden >_$@
2>&1 || echo EXIT CODE: $$? >> _$@
@-$(CMP) "$(TESTDIR)"/address@hidden _$@ && rm -f _$@
+mbprintf4::
+ @echo $@
+ @GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \
+ $(AWK) -f "$(TESTDIR)"/address@hidden "$(TESTDIR)"/address@hidden >_$@
2>&1 || echo EXIT CODE: $$? >> _$@
+ @-$(CMP) "$(TESTDIR)"/address@hidden _$@ && rm -f _$@
+
mbfw1::
@echo $@
@GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \
diff --git a/misc/ldbl_tests/Makefile.in b/misc/ldbl_tests/Makefile.in
index 5b6d439..12e102a 100644
--- a/misc/ldbl_tests/Makefile.in
+++ b/misc/ldbl_tests/Makefile.in
@@ -1938,6 +1938,12 @@ mbprintf3::
$(AWK) -f "$(TESTDIR)"/address@hidden "$(TESTDIR)"/address@hidden >_$@
2>&1 || echo EXIT CODE: $$? >> _$@
@-$(CMP) "$(TESTDIR)"/address@hidden _$@ && rm -f _$@
+mbprintf4::
+ @echo $@
+ @GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \
+ $(AWK) -f "$(TESTDIR)"/address@hidden "$(TESTDIR)"/address@hidden >_$@
2>&1 || echo EXIT CODE: $$? >> _$@
+ @-$(CMP) "$(TESTDIR)"/address@hidden _$@ && rm -f _$@
+
mbfw1::
@echo $@
@GAWKLOCALE=en_US.UTF-8 ; export GAWKLOCALE ; \
@@ -3471,11 +3477,6 @@ fmttest:
@AWKPATH="$(TESTDIR)" $(AWK) -f address@hidden >_$@ 2>&1 || echo EXIT
CODE: $$? >>_$@
@-$(CMP) "$(TESTDIR)"/address@hidden _$@ && rm -f _$@
-mbprintf4:
- @echo $@
- @AWKPATH="$(TESTDIR)" $(AWK) -f address@hidden <
"$(TESTDIR)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
- @-$(CMP) "$(TESTDIR)"/address@hidden _$@ && rm -f _$@
-
rebt8b2:
@echo $@
@AWKPATH="$(TESTDIR)" $(AWK) -f address@hidden >_$@ 2>&1 || echo EXIT
CODE: $$? >>_$@
diff --git a/misc/ldbl_tests/Maketests b/misc/ldbl_tests/Maketests
index b747aa0..84c956b 100644
--- a/misc/ldbl_tests/Maketests
+++ b/misc/ldbl_tests/Maketests
@@ -1240,11 +1240,6 @@ fmttest:
@AWKPATH="$(TESTDIR)" $(AWK) -f address@hidden >_$@ 2>&1 || echo EXIT
CODE: $$? >>_$@
@-$(CMP) "$(TESTDIR)"/address@hidden _$@ && rm -f _$@
-mbprintf4:
- @echo $@
- @AWKPATH="$(TESTDIR)" $(AWK) -f address@hidden <
"$(TESTDIR)"/address@hidden >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
- @-$(CMP) "$(TESTDIR)"/address@hidden _$@ && rm -f _$@
-
rebt8b2:
@echo $@
@AWKPATH="$(TESTDIR)" $(AWK) -f address@hidden >_$@ 2>&1 || echo EXIT
CODE: $$? >>_$@
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 7 +++++++
long_double.h | 21 ++++++++++++++++++++-
misc/ldbl_tests/Makefile.am | 6 ++++++
misc/ldbl_tests/Makefile.in | 11 ++++++-----
misc/ldbl_tests/Maketests | 5 -----
5 files changed, 39 insertions(+), 11 deletions(-)
hooks/post-receive
--
gawk
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gawk-diffs] [SCM] gawk branch, long-double, updated. gawk-4.1.0-157-gbb422f1,
Arnold Robbins <=