ruby-changes:12613
From: mame <ko1@a...>
Date: Thu, 30 Jul 2009 21:55:36 +0900 (JST)
Subject: [ruby-changes:12613] Ruby:r24325 (trunk): * random.c (init_genrand): ensure invariant of mt->next and mt->left.
mame 2009-07-30 21:55:04 +0900 (Thu, 30 Jul 2009) New Revision: 24325 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=24325 Log: * random.c (init_genrand): ensure invariant of mt->next and mt->left. mt->next should always equal mt->state + N + 1 - mt->left. In fact, 'r = Random.new(0); r == r.dup' has returned false. Modified files: trunk/ChangeLog trunk/random.c Index: ChangeLog =================================================================== --- ChangeLog (revision 24324) +++ ChangeLog (revision 24325) @@ -1,3 +1,9 @@ +Thu Jul 30 21:48:56 2009 Yusuke Endoh <mame@t...> + + * random.c (init_genrand): ensure invariant of mt->next and mt->left. + mt->next should always equal mt->state + N + 1 - mt->left. + In fact, 'r = Random.new(0); r == r.dup' has returned false. + Thu Jul 30 21:43:41 2009 Yusuke Endoh <mame@t...> * random.c (random_bytes): use NUM2LONG instead of FIX2LONG because Index: random.c =================================================================== --- random.c (revision 24324) +++ random.c (revision 24325) @@ -98,7 +98,7 @@ mt->state[j] &= 0xffffffff; /* for >32 bit machines */ } mt->left = 1; - mt->next = mt->state + N - 1; + mt->next = mt->state + N; } /* initialize by an array with array-length */ -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/