random: Add a k parameter for pareto. Add some unit tests.
parent
57231bfef4
commit
8af39377d1
|
@ -1,5 +1,5 @@
|
||||||
USING: random sequences tools.test kernel math math.functions
|
USING: random sequences tools.test kernel math math.functions
|
||||||
sets grouping random.private ;
|
sets grouping random.private math.statistics ;
|
||||||
IN: random.tests
|
IN: random.tests
|
||||||
|
|
||||||
[ 4 ] [ 4 random-bytes length ] unit-test
|
[ 4 ] [ 4 random-bytes length ] unit-test
|
||||||
|
@ -33,3 +33,15 @@ IN: random.tests
|
||||||
|
|
||||||
[ ]
|
[ ]
|
||||||
[ [ 100 random-bytes ] with-system-random drop ] unit-test
|
[ [ 100 random-bytes ] with-system-random drop ] unit-test
|
||||||
|
|
||||||
|
{ t }
|
||||||
|
[ 50000 [ .15 exponential-random-float ] replicate [ mean ] [ std ] bi .2 ~ ] unit-test
|
||||||
|
|
||||||
|
{ t }
|
||||||
|
[ 50000 [ 1 exponential-random-float ] replicate [ mean ] [ std ] bi .2 ~ ] unit-test
|
||||||
|
|
||||||
|
{ t t }
|
||||||
|
[
|
||||||
|
50000 [ 1 3 pareto-random-float ] replicate [ mean ] [ std ] bi
|
||||||
|
[ 1.5 .3 ~ ] [ 3 sqrt 2 / .3 ~ ] bi*
|
||||||
|
] unit-test
|
||||||
|
|
|
@ -127,8 +127,8 @@ ERROR: too-many-samples seq n ;
|
||||||
1. swap / ^
|
1. swap / ^
|
||||||
] dip * ;
|
] dip * ;
|
||||||
|
|
||||||
: pareto-random-float ( alpha -- n )
|
: pareto-random-float ( k alpha -- n )
|
||||||
[ random-unit ] dip [ 1. swap / ] bi@ ^ ;
|
[ random-unit ] dip recip ^ /f ;
|
||||||
|
|
||||||
:: (gamma-random-float>1) ( alpha beta -- n )
|
:: (gamma-random-float>1) ( alpha beta -- n )
|
||||||
! Uses R.C.H. Cheng, "The generation of Gamma
|
! Uses R.C.H. Cheng, "The generation of Gamma
|
||||||
|
|
Loading…
Reference in New Issue