Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
33
Task/Random-numbers/Avail/random-numbers.avail
Normal file
33
Task/Random-numbers/Avail/random-numbers.avail
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
Method "U(_,_)" is
|
||||
[
|
||||
lower : number,
|
||||
upper : number
|
||||
|
|
||||
divisor ::= ((1<<32)) ÷ (upper - lower)→double;
|
||||
map a pRNG through [i : integer | (i ÷ divisor) + lower]
|
||||
];
|
||||
|
||||
Method "a Marsaglia polar sampler" is
|
||||
[
|
||||
generator for
|
||||
[
|
||||
yield : [double]→⊤
|
||||
|
|
||||
source ::= U(-1, 1);
|
||||
Repeat [
|
||||
x ::= take 1 from source[1];
|
||||
y ::= take 1 from source[1];
|
||||
s ::= x^2 + y^2;
|
||||
If 0 < s < 1 then
|
||||
[
|
||||
factor ::= ((-2 × ln s) ÷ s) ^ 0.5;
|
||||
yield(x × factor);
|
||||
yield(y × factor);
|
||||
];
|
||||
]
|
||||
]
|
||||
];
|
||||
|
||||
// the default distribution has mean 0 and std dev 1.0, so we scale the values
|
||||
sampler ::= map a Marsaglia polar sampler through [d : double | d ÷ 2.0 + 1.0];
|
||||
values ::= take 1000 from sampler;
|
||||
Loading…
Add table
Add a link
Reference in a new issue