code: function qexp(rate, lowerTail, logp) {
        logp = logp === true;
        lowerTail = lowerTail !== false;
  
        if (utils.hasNaN(rate)) { return function(x) { return NaN; }; }
  
        return utils.qhelper(lowerTail, logp, 0, Infinity, function(p) {
           if (rate < 0 && rate !== -Infinity) { return NaN; }
           if (logp) {
              return lowerTail ? -Math.log(-expm1(p)) / rate
                               : -p / rate;
           }
           return lowerTail ? -log1p(-p) / rate
                            : -Math.log(p) / rate;
        });
     }
docs: Evaluates the exponential distribution's quantile function
  (inverse cdf) at `p`:
  $$\textrm{qexp}(\lambda)(p) = x \textrm{ such that } \textrm{prob}(X \leq x) = p$$
  where $X$ is a random variable with the exponential distribution.
  
  Expects the rate $\lambda > 0$.
  
  `lowerTail` defaults to `true`; if `lowerTail` is `false`, `p` is
  interpreted as an upper tail probability (returns
  $x$ such that $\textrm{prob}(X > x) = p)$.
  
  `logp` defaults to `false`; if `logp` is `true`, interprets `p` as
  the logarithm of the desired probability.
  @fullName qexp(rate, lowerTail, logp)(p)
  @memberof exponential