ACM Transactions on Mathematical Software (TOMS)
The Monty Python method for generating random variables
ACM Transactions on Mathematical Software (TOMS)
Generating gamma variates by a modified rejection technique
Communications of the ACM
A compact and accurate Gaussian variate generator
IEEE Transactions on Very Large Scale Integration (VLSI) Systems
On the moment-determinance and random mixture of Nakagami-m variates
IEEE Transactions on Communications
Secure multiparty aggregation with differential privacy: a comparative study
Proceedings of the Joint EDBT/ICDT 2013 Workshops
Non-recursive estimation using a batch filter based on particle filtering
Computers & Mathematics with Applications
Hi-index | 0.00 |
We offer a procedure for generating a gamma variate as the cube of a suitably scaled normal variate. It is fast and simple, assuming one has a fast way to generate normal variables. In brief: generate a normal variate x and a uniform variate U until In (U)x2 + d - dv + dln(italicv), then return dv. Here, the gamma parameter is &agr; ≥ 1, and v = (1 + x/ *** with d = &agr; - 1/3. The efficiency is high, exceeding 0.951, 0.981, 0.992, 0.996 at &agr; = 1,2,4,8. The procedure can be made to run faster by means of a simple squeeze that avoids the two logarithms most of the time; return dv if U x4. We give a short C program for any &agr; ≥ 1, and show how to boost an &agr; 1. The gamma procedure is particularly fst for C implementation if the normal variate is generated in-line, via the #define feature. We include such an inline version, based on our ziggurat method. With it, and an inline uniform generator, gamma variates can be produced in 400MHz CPUs at better than 1.3 million per second, with the parameter &agr; changing from call to call.