Handbook
Glossary
(gamma-random-float>1) ( alpha beta -- n )
Vocabulary
random.private
Inputs
alpha
an
object
beta
an
object
Outputs
n
an
object
Definition
USING:
combinators.short-circuit
kernel
math
math.functions
namespaces
random
;
IN:
random.private
::
(gamma-random-float>1)
( alpha beta -- n )
random-generator
get
:>
rnd 2.0 alpha
*
1
-
sqrt
:>
ainv alpha 4.0
log
-
:>
bbb alpha ainv
+
:>
ccc 0
:>
r! 0
:>
z! 0
:>
result!
[
r
{
[
1.0 4.5
log
+
+
z 4.5
*
-
0
>=
]
[
z
log
>=
]
}
1||
not
]
[
rnd
(random-unit)
:>
u1 rnd
(random-unit)
:>
u2 u1 1.0
u1
-
/
log
ainv
/
:>
v alpha v
e^
*
:>
x u1
sq
u2
*
z! bbb ccc v
*
+
x
-
r! x beta
*
result!
]
do
while
result
;