[Rd] R 2.3.0 (alpha) on FreeBSD 6.1 fails make check-all
Andrew Robinson
A.Robinson at ms.unimelb.edu.au
Tue Mar 28 15:17:34 CEST 2006
This is from 2.2.1:
> Phyper <- phyper(7, m = 40, n = 30, k = 20)
> print(Phyper, digits=16)
[1] 0.01796062766370490
This is from 2.3.0:
> Phyper <- phyper(7, m = 40, n = 30, k = 20)
> print(Phyper, digits=16)
[1] 0.01796062766370491
> qhyper(Phyper, m = 40, n = 30, k = 20)
[1] 8
Then if I save Phyper from 2.2.1, and load it in 2.3.0,
> qhyper(Phyper, m = 40, n = 30, k = 20)
[1] 7
so it appears that the difference between 0.01796062766370490 and
0.01796062766370491 is important here.
(2.3.0)
> qhyper(0.01796062766370490, m = 40, n = 30, k = 20)
[1] 7
> qhyper(0.01796062766370491, m = 40, n = 30, k = 20)
[1] 8
Comparing the full sample:
This is from 2.2.1:
> 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)
> print(Phyper, digits=16)
[1] 0.99744478362220412 0.51295659016196715 0.51295659016196715
[4] 0.98680472393309626 0.51295659016196715 0.86627412777488222
[7] 0.86627412777488222 0.71494883441868140 0.86627412777488222
[10] 0.30864259597126753 0.30864259597126753 0.01796062766370490
[13] 0.51295659016196715 0.95139460528774533 0.86627412777488222
[16] 0.15132082044442866 0.95139460528774533 0.86627412777488222
[19] 0.86627412777488222 0.51295659016196715
This is from 2.3.0:
> print(Phyper, digits=16)
[1] 0.99744478362220401 0.51295659016196726 0.51295659016196726
[4] 0.98680472393309615 0.51295659016196726 0.86627412777488211
[7] 0.86627412777488211 0.71494883441868129 0.86627412777488211
[10] 0.30864259597126747 0.30864259597126747 0.01796062766370491
[13] 0.51295659016196726 0.95139460528774533 0.86627412777488211
[16] 0.15132082044442868 0.95139460528774533 0.86627412777488211
[19] 0.86627412777488211 0.51295659016196726
The 14's (elements 14 and 17) are identical, everything else is
slightly different.
I also got this interesting result from 2.2.1:
> Rhyper <- 1:20
> Phyper <- phyper (Rhyper, m = 40, n = 30, k = 20)
> qhyper(Phyper, m = 40, n = 30, k = 20)
[1] 1 2 3 4 6 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Repeating the operation for 2.3.0:
> Rhyper <- 1:20
> Phyper <- phyper (Rhyper, m = 40, n = 30, k = 20)
> qhyper(Phyper, m = 40, n = 30, k = 20)
[1] 1 2 3 4 6 6 8 8 9 10 11 12 13 14 15 16 17 18 19 20
(I also tried on WinXP R 2.2.1, and got the expected 1:20 back.)
On Tue, Mar 28, 2006 at 12:02:11PM +0100, Prof Brian Ripley wrote:
> Then we need you to dig in to find out why. I'd start by seeing if Phyper
> had changed (either by printing it to 16dp or by saving it from 2.2.1 and
> reloading into 2.3.0).
>
> On Tue, 28 Mar 2006, Andrew Robinson wrote:
>
> >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
> >
> >
>
> --
> 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
More information about the R-devel
mailing list