m <- 9:12; n <- 7:10; k <- 10
x <- 0:(k+1) # length 12
## confirmation that recycling + lower.tail, log.p now work:
for(lg in c(FALSE,TRUE))
for(lt in c(FALSE, TRUE)) {
cat("(lower.tail = ", lt, " -- log = ", lg,"):\n", sep="")
withAutoprint({
(rr <-
cbind(x, m, n, k, # recycling (to 12 rows)
ph = phyper (x, m, n, k, lower.tail=lt, log.p=lg),
phR = phyperR(x, m, n, k, lower.tail=lt, log.p=lg)))
all.equal(rr[,"ph"], rr[,"phR"], tol = 0)
## saw 4.706e-15 1.742e-15 7.002e-12 1.086e-15 [x86_64 Lnx]
stopifnot(all.equal(rr[,"ph"], rr[,"phR"],
tol = if(lg && !lt) 2e-11 else 2e-14))
})
}
Run the code above in your browser using DataLab