R 2.3.0 (alpha) on FreeBSD 6.1 fails make check-all
I get:
Rhyper <- scan()
1: 16 11 11 15 11 13 13 12 13 10 10 7 11 14 13 9 14 13 13 11 21: Read 20 items
Phyper <- phyper (Rhyper, m = 40, n = 30, k = 20) qhyper(Phyper, m = 40, n = 30, k = 20)
[1] 16 11 11 15 11 13 13 12 13 10 10 8 11 14 13 9 14 13 13 11 The 12th element (8) differs from the input (7).
Phyper <- phyper (7, m = 40, n = 30, k = 20) qhyper(Phyper, m = 40, n = 30, k = 20)
[1] 8 If I do this using 2.2.1 then the input and the output are identical.
On Tue, Mar 28, 2006 at 10:27:08AM +0100, Prof Brian Ripley wrote:
On Tue, 28 Mar 2006, Andrew Robinson wrote:
You're welcome. You are correct. d-p-q-r-tests.Rout.fail shows:
All.eq(Rhyper, qhyper (Phyper, m = 40, n = 30, k = 20))
[1] "Mean scaled difference: 0.08333333"
Yes, please run the lines below, e.g. Rhyper <- scan() 16 11 11 15 11 13 13 12 13 10 10 7 11 14 13 9 14 13 13 11 Phyper <- phyper (Rhyper, m = 40, n = 30, k = 20) qhyper(Phyper, m = 40, n = 30, k = 20) and tell us what answer you get.
Let me know if/how I can further assist. Andrew On Tue, Mar 28, 2006 at 09:03:48AM +0100, Prof Brian Ripley wrote:
Thanks for checking. Please look in d-p-q-r-tests.Rout.fail and see what immediately preceeds the line [1] "Mean scaled difference: 0.08333333" Some experimentation suggests it is
All.eq(Rhyper, qhyper (Phyper, m = 40, n = 30, k = 20))
If so, we have Rhyper <- scan() 16 11 11 15 11 13 13 12 13 10 10 7 11 14 13 9 14 13 13 11 Phyper <- phyper (Rhyper, m = 40, n = 30, k = 20) and those have been checked. So the error would appear to be in qhyper(Phyper, m = 40, n = 30, k = 20) and indeed a mean scaled difference of 1/12 is plausible, since the mean of Rhyper is 12. So I deduce that your platform has a problem in qhyper, but please cross-check. If so, this is strange as the only recent change to qhyper.c (or things I can see it uses such as lfastchoose) is cosmetic. Can you confirm the diagnosis is correct so far? On Tue, 28 Mar 2006, Andrew Robinson wrote:
Hi Developers, The alpha, compiles successfully, but it is failing make check-all (on two seperate machines, both FreeBSD 6.1). Here is the version string: platform i386-unknown-freebsd6.1 arch i386 os freebsd6.1 system i386, freebsd6.1 status alpha major 2 minor 3.0 year 2006 month 03 day 27 svn rev 37584 language R version.string Version 2.3.0 alpha (2006-03-27 r37584) Here is the error message from make check-all comparing 'd-p-q-r-tests.Rout' to './d-p-q-r-tests.Rout.save' ...706c706 < [1] "Mean scaled difference: 0.08333333" ---
[1] TRUE
gmake[3]: *** [d-p-q-r-tests.Rout] Error 1 gmake[3]: Leaving directory `/usr/local/beta/R-alpha/tests' gmake[2]: *** [test-Specific] Error 2 gmake[2]: Leaving directory `/usr/local/beta/R-alpha/tests' gmake[1]: *** [test-all-basics] Error 1 gmake[1]: Leaving directory `/usr/local/beta/R-alpha/tests' gmake: *** [check-all] Error 2 I have checked d-p-q-r-tests.Rout.fail for any obvious problems - I found some warnings, viz.
pgamma(1,Inf,scale=Inf) == 0
[1] TRUE
## Also pgamma(Inf,Inf) == 1 for which NaN was slightly more
appropriate
all(is.nan(c(pgamma(Inf, 1,scale=Inf),
+ pgamma(Inf,Inf,scale=Inf)))) [1] TRUE Warning messages: 1: NaNs produced in: pgamma(q, shape, scale, lower.tail, log.p) 2: NaNs produced in: pgamma(q, shape, scale, lower.tail, log.p)
x0 <- -2 * 10^-c(22,10,7,5) stopifnot(pbinom(x0, size = 3, prob = 0.1) == 0,
+ dbinom(x0, 3, 0.1) == 0) # d*() warns about non-integer Warning messages: 1: non-integer x = -0.000000 2: non-integer x = -0.000020
## very small negatives were rounded to 0 in R 2.2.1 and earlier
I hope that this is helpful. Thanks are due to Peter Dalgaard for guidance. So, thanks Peter :). Cheers Andrew
-- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
-- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
Andrew Robinson Department of Mathematics and Statistics Tel: +61-3-8344-9763 University of Melbourne, VIC 3010 Australia Fax: +61-3-8344-4599 Email: a.robinson at ms.unimelb.edu.au http://www.ms.unimelb.edu.au