docs: function qf(df1, df2, lowerTail, logp) {
        var qbeta;
  
        logp = logp === true;
        lowerTail = lowerTail !== false;
        qbeta = beta.qbeta(df2 / 2, df1 / 2, !lowerTail, logp);
  
        if (df1 <= 0 || df2 <= 0 || utils.hasNaN(df1, df2)) {
           return function(x) { return NaN; };
        }
  
        return utils.qhelper(lowerTail, logp, 0, Infinity, function(p) {
           if (df1 <= df2 && df2 > 4e5) {
              return df1 === Infinity ? 1
                     : chisq.qchisq(df1, lowerTail, logp)(p) / df1;
           }
           if (df1 > 4e5) { return df2 / chisq.qchisq(df2, !lowerTail, logp)(p); }
           return (1 / qbeta(p) - 1) * (df2 / df1);
        });
     }