Abstract:
Generating random numbers efficiently is a classical problem in computing.
We discuss two cases: sampling the 2-dimensional disk and the space of 3D rotations.
Common methods involve trigonometric functions or rejection approaches, both of which can be slow on some hardware.
First, we adapt the Lubotzky-Phillipps-Sarnak method for producing low discrepancy sequences which is based on integers, modifying it to trade quality for speed (keeping the spectral gap).
Second, we discuss von Neumann's method of rejection sampling for the disk using conditional probability. By leveraging translation symmetry and memory (Markov Chain), we can eliminate rejections.
Discussion on these topics can already be found on https://rene.ruhr/gfx/.