uniform and normal distributed random floats. uniform is done the lame way for now

db4
Joe Groff 2009-05-06 13:22:53 -05:00
parent fdab677ef5
commit 6ea5ccd881
1 changed files with 12 additions and 1 deletions

View File

@ -3,7 +3,7 @@
USING: alien.c-types kernel math namespaces sequences USING: alien.c-types kernel math namespaces sequences
io.backend io.binary combinators system vocabs.loader io.backend io.binary combinators system vocabs.loader
summary math.bitwise byte-vectors fry byte-arrays summary math.bitwise byte-vectors fry byte-arrays
math.ranges ; math.ranges math.constants math.functions ;
IN: random IN: random
SYMBOL: system-random-generator SYMBOL: system-random-generator
@ -69,6 +69,17 @@ PRIVATE>
: with-secure-random ( quot -- ) : with-secure-random ( quot -- )
secure-random-generator get swap with-random ; inline secure-random-generator get swap with-random ; inline
: uniform-random-float ( min max -- n )
64 random-bits >float [ over - 2.0 -64 ^ * ] dip
* + ;
: normal-random-float ( mean sigma -- n )
0.0 1.0 uniform-random-float
0.0 1.0 uniform-random-float
[ 2 pi * * cos ]
[ 1.0 swap - log -2.0 * sqrt ]
bi* * * + ;
USE: vocabs.loader USE: vocabs.loader
{ {