Last Saturday, while getting reacquainted with my home desk, I was delighted to spot a new arXival by Luc Devroye! Entitled the acceptance-complement method revisited, it discusses a variant of accept-reject method, where the target density f(·) is squeezed between two functions
0≤r(x)≤f(x)≤r(x)+q(x)
and can be simulated as the mixture
r(x)+(f(x)-r(x)),
assuming both r(·) and q(·) are proportional to densities that can easily be simulated. (With the additional constraint of q(·) having at most mass 1.) The nicest part is that the algorithm is always one-pass, as
- generate Y~ q(y), U ~U(0,1)
- if Uq(Y)<f(Y)-r(Y), set X=Y
- else generate X~r(x)
with step 2 having two outcomes: either generate a realisation of [the density proportional to] f(·)-r(·) or generate an event of probability α when α is the mass [normalising constant] of r(·). This explains step 3 since the rejection of Y implies simulation from the second component of f(·). Brilliant! And Devroye derives a universal accept-complement algorithm for generic log-concave densities (that differs from Gilks & Wild, 1992.).


![I came across this question about truncated Normal simulation on X validated, pointing out at a 1963 [AX II!] Boeing technical report by George Marsaglia! The proposal uses a translated Exponential variate with scale 2, and then takes the squared root. This is an alternative of my (1995) [and John Geweke's (1993)] proposal using a translated Exponential variate with optimised scale and I wonder which solution is better. Presumably Marsaglia's, especially since the scale of 1/2 is the optimal one! Fodder for the next Monte Carlo exam, possibly, if my students do not come across this 'Og entry.](https://i0.wp.com/xianblog.fr/wp-content/uploads/2024/09/temp-4.png?resize=450%2C340&ssl=1)
