docs: function gammaCheng(a, s) {
        var c1, c2, c3, c4;
  
        c1 = a - 1;
        c2 = (a - 1 / (6 * a)) / c1;
        c3 = 2 / c1;
        c4 = c3 + 2;
  
        return function() {
           var u1, u2, w;
  
           /* eslint-disable no-constant-condition */
           while (true) {
           /* eslint-enable */
              u1 = rgen.random();
              u2 = rgen.random();
              w = c2 * u2 / u1;
              if (c3 * u1 + w + 1 / w <= c4) {
                 return c1 * w * s;
              }
              if (c3 * Math.log(u1) - Math.log(w) + w < 1) {
                 return c1 * w * s;
              }
           }
        };
     }