docs: function pexp(rate, lowerTail, logp) {
        logp = logp === true;
        lowerTail = lowerTail !== false;
  
        if (utils.hasNaN(rate)) { return function(x) { return NaN; }; }
  
        return function(x) {
           var ret;
  
           if (utils.hasNaN(x)) { return NaN; }
           if (rate < 0 && rate !== -Infinity) { return NaN; }
           if (x <= 0) {
              ret = lowerTail ? 0 : 1;
              return logp ? Math.log(ret) : ret;
           }
  
           // basic behavior
           if (lowerTail) {
              return logp ? log1p(-Math.exp(-rate * x))
                          : -expm1(-rate * x);
           }
           // else right tail
           return logp ? -rate * x
                       : Math.exp(-rate * x);
        };
     }