code: function dbinom(size, p, logp) {
        var lbinom;
  
        logp = logp === true;
        lbinom = dbinomLog(size, p);
  
        if (utils.hasNaN(size, p) ||
            size < 0 || p < 0 || p > 1 ||
            size !== Math.floor(size)) {
           return function() { return NaN; };
        }
  
        return function(x) {
           if (utils.hasNaN(x)) { return NaN; }
  
           if (x < 0 || x > size || Math.floor(x) !== x ||
                        utils.isInfinite(x)) {
              return logp ? -Infinity : 0;
           }
  
           return logp ? lbinom(x) : Math.exp(lbinom(x));
        };
     }
docs: Returns the Binomial probability at `x`:
  $$\textrm{dbinom}(\textrm{size}, p)(x) = \binom{\textrm{size}}{p}p^{x}(1-p)^{(\textrm{size}-x)}$$
  where `x` is an integer, $0 \leq x \leq \textrm{size}$.
  
  `size` is a positive integer (number of trials) and $0 \leq p \leq 1$
  (the probability of success on a single trial).
  
  `logp` defaults to `false`; if `logp` is `true`, returns the
  logarithm of the result.
  
  Based on: *Fast and Accurate Computation of Binomial Probabilities*,
  by Catherine Loader, 2000
  
  @fullName dbinom(size, p, logp)(x)
  @memberof binomial