docs: function qt(df, lowerTail, logp) {
        lowerTail = lowerTail !== false;
        logp = logp === true;
  
        if (utils.hasNaN(df)) { return function(p) { return NaN; }; }
        return utils.qhelper(lowerTail, logp, -Infinity, Infinity, function(p) {
           // var pp;
  
           // two-tailed prob, pp = 2 * min(p, 1-p)
           // pp = 2 * (logp ? Math.min(Math.exp(p), -expm1(p))
                          // : Math.min(p, 1 - p));
           if (df <= 0) { return NaN; }
           // Using the solver on whole range (possibly inefficient but works)
           // if (df < 1) {
              return utils.binSearchSolve(function(x) {
                 return pt(df, lowerTail, logp)(x);
              }, p);
           // }
  
           // if (df > 1e20) {
           //    return qnorm(0, 1, lowerTail, logp)(p);
           // }
  
           // TODO: Could consider optimizing for df close to 1 or 2
  
        });
     }