Given TOMS708 has been incorporated into R and that the original pbeta_raw 
routine had more problems than just large shape parameters, why wasnât it 
rewritten as

double pbeta_raw(double x, double pin, double qin, int lower_tail)
{
    /* Use TOMS 708 */
    double x1 = 1 - x, w, wc;
    int ierr;
    bratio(pin, qin, x, x1, &w, &wc, &ierr);
    return lower_tail ? w : wc;
}

Incidentally, in pbeta, I thought the point of the log_p parameter was to 
return the logged value particularly for cases where the non-logged version of 
pbeta_raw returns 0. Itâs not difficult to modify bratio to do this, provided 
thatâs allowed.

I think the other remarks made by Morten Welinder in PR#7153 still stand, 
namely several functions which called pbeta and have kludge code to compensate 
for its previous weaknesses could be significantly improved  by removal of the 
kludges.

Ian Smith

P.S. the next logical step would be to replace pgamma with TOMS654, as pgamma 
suffers from the same problems which the old pbeta did.

______________________________________________
R-devel@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to