docs: function rpois(lambda) {
        var mode;
  
        mode = { val: Math.floor(lambda) };
        mode.prob = Math.exp(-lambda + mode.val * Math.log(lambda) -
           lgamma(mode.val + 1));
  
        return inverseCDF(
           function getMode() { return mode; },
           function updateLeft() {
              if (this.val === 0) { return false; }
              this.prob *= this.val / lambda;
              this.val -= 1;
              return true;
           },
           function updateRight() {
              this.val += 1;
              this.prob *= lambda / this.val;
              return true;
           }
        );
     }