Algo\(\left(\alpha>1\right)\)
  1. Set  \(b=\alpha-1,\ a=\alpha+b\ \ \)and \(s\ =\ a^{\frac{1}{2}}\).
  2. Generate \(U\). Set \(t=s\ \tan\left(\pi\left(U-0.5\right)\right)\) and \(x=b+t\).
  3. If \(x<0\) go to 2.
  4. Generate \(v\). If \(v>e^{\left(b\ \ln\left(\frac{x}{b}\right)-t+\ln\left(1+t^{\frac{2}{a}}\right)\right)}\) go to 2(rejection), Otherwise deliver \(x\).

Algorithm GN\citep*{Ahrens1974}

In order to reduce the number of rejection Dieter. He proposed a highly efficient algorithm combining a normal envelope \(g\left(x\right)\) around the bulk of gamma distribution with an exponential cover \(h\left(x\right)\) above the tail. \(\)