gawk-diffs
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]