move random-bits* to random, work on docs

db4
Doug Coleman 2009-05-10 13:39:08 -05:00 committed by Sascha Matzke
parent aae9b78219
commit 02ddb8005d
4 changed files with 20 additions and 4 deletions

View File

@ -11,7 +11,7 @@ IN: random.mersenne-twister.tests
100 [ 100 random ] replicate ;
: test-rng ( seed quot -- )
[ <mersenne-twister> ] dip with-random ; inline
[ <mersenne-twister> ] dip with-random ; inline
[ f ] [ 1234 [ randoms randoms = ] test-rng ] unit-test

View File

@ -40,9 +40,17 @@ HELP: random-bytes
} ;
HELP: random-bits
{ $values { "n" "an integer" } { "r" "a random integer" } }
{ $values { "numbits" integer } { "r" "a random integer" } }
{ $description "Outputs an random integer n bits in length." } ;
HELP: random-bits*
{ $values
{ "numbits" integer }
{ "n" integer }
}
{ $description "Returns an integer exactly " { $snippet "numbits" } " in length, with the topmost bit set to one." } ;
HELP: with-random
{ $values { "tuple" "a random generator" } { "quot" "a quotation" } }
{ $description "Calls the quotation with the random generator in a dynamic variable. All random numbers will be generated using this random generator." } ;
@ -93,6 +101,9 @@ $nl
"Randomizing a sequence:"
{ $subsection randomize }
"Deleting a random element from a sequence:"
{ $subsection delete-random } ;
{ $subsection delete-random }
"Random numbers with " { $snippet "n" } " bits:"
{ $subsection random-bits }
{ $subsection random-bits* } ;
ABOUT: "random"

View File

@ -23,3 +23,5 @@ IN: random.tests
[ f ]
[ 100 [ { 0 1 } random ] replicate all-equal? ] unit-test
[ 49 ] [ 50 random-bits* log2 ] unit-test

View File

@ -45,7 +45,10 @@ M: f random-32* ( obj -- * ) no-random-number-generator ;
PRIVATE>
: random-bits ( n -- r ) 2^ random-integer ;
: random-bits ( numbits -- r ) 2^ random-integer ;
: random-bits* ( numbits -- n )
1 - [ random-bits ] keep set-bit ;
: random ( seq -- elt )
[ f ] [