Mike Giles - Fast evaluation of the inverse Poisson CDF

Fast evaluation of the inverse Poisson CDF

The function normcdfinv(u) in NVIDIA's CUDA maths library (and similar functions in various libraries for CPU execution) computes the inverse of the cumulative distribution function (CDF) for the Normal distribution. It can be used to convert uniformly distributed pseudo-random (or quasi-random) numbers into psuedo-random (or quasi-random) Normals.

Here I present an article, and associated software, on algorithms for a function poissinv(u) which performs the corresponding task for Poisson distributions, and can be used to generate Poisson random variates.

Paper and presentations:

GPU software: CPU software: MATLAB codes used to construct approximations, validate them, or prepare figures for the paper:


The poissinv_cuda.h and poissinv.h header files are freely available to all under a GPL license. It will be provided to NVIDIA under a permissive BSD license -- anyone else requiring a more permissive license for commercial purposes should contact me.

I would be grateful if academic users would cite the paper above, once it has been published.