uniform and normal distributed random floats. uniform is done the lame way for now
parent
fdab677ef5
commit
6ea5ccd881
|
@ -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
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue