qbeta hang (PR#2894)
terra@gnome.org writes:
Full_Name: Morten Welinder Version: 1.6.1 OS: Solaris/sparc Submission from: (NULL) (65.213.85.144) qbeta(0.1, 1e-8, 0.5, TRUE, FALSE) seems to hang for me.
confirmed on 1.7.0 Solaris 9, gcc 3.0.3 (standard build, so -O2, I assume) Morten: the gcc version is often crucial in these cases. However, the exact same thing is happening on Linux. The immediate cause is that n = fmax2(lneps/log(y), 4.0) gets large when y is in the vicinity of 1-1e-8, so the loop in src/nmath/pbeta.c:101 gets a rather high count. The algorithm isn't really stuck, it just takes a very long time. On the fastest machine that I have available:
system.time(qbeta(0.1, 1e-8, 0.5, TRUE, FALSE))
[1] 75.58 0.00 75.58 0.00 0.00 It's not really that surprising:
pbeta(1e-5, 1e-8, 0.5,, TRUE, FALSE)
[1] 0.9999999
pbeta(1e-10, 1e-8, 0.5,, TRUE, FALSE)
[1] 0.9999998
pbeta(1e-200, 1e-8, 0.5,, TRUE, FALSE)
[1] 0.9999954
pbeta(1e-309, 1e-8, 0.5,, TRUE, FALSE)
[1] 0.999993
pbeta(1e-400, 1e-8, 0.5,, TRUE, FALSE)
[1] 0 and you're trying to solve pbeta(x, 1e-8, 0.5,, TRUE, FALSE) == 0.1
O__ ---- Peter Dalgaard Blegdamsvej 3 c/ /'_ --- Dept. of Biostatistics 2200 Cph. N (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk) FAX: (+45) 35327907