@@ -665,11 +665,19 @@ dbArg <- cbind(
665665(db <- apply(dbArg , 1 , \(v3 ) do.call(dbinom , c(v3 , list (log = TRUE ))))) # # was all -Inf !
666666# # dput(signif(db, 6))
667667stopifnot(
668- all.equal(db ,
669- c(- 1.73031e+308 , - 1.76399e+308 , - 1.73534e+308 , - 1.74653e+308 , - 1.7615e+308 ,
670- - 1.79181e+308 , - 1.7259e+308 , - 1.77688e+308 , - 1.77981e+308 , - 1.74055e+308 ,
671- - 1.70236e+308 , - 1.76548e+308 , - 1.79598e+308 , - 1.79126e+308 , - 1.79514e+308 ), tolerance = 1e-5 ))
672- # # all == -Inf previously
668+ all.equal(db , tolerance = 1e-5 ,
669+ c(- 1.73031e+308 , - 1.76399e+308 , - 1.73534e+308 , - 1.74653e+308 , - 1.7615e+308 ,
670+ - 1.79181e+308 , - 1.7259e+308 , - 1.77688e+308 , - 1.77981e+308 , - 1.74055e+308 ,
671+ - 1.70236e+308 , - 1.76548e+308 , - 1.79598e+308 , - 1.79126e+308 , - 1.79514e+308 )))
672+ # # all == -Inf in R <= 4.5.0
673+
674+ x <- c(12 : 20 , 100 * c(1 ,3 ,10 ,20 ,50 )) # dbinom for very small prob (did overflow in bd0())
675+ (db <- dbinom(x , size = x + 1 , prob = 2 ^- 1024.1 , log = TRUE ))
676+ stopifnot(
677+ all.equal(c(- 8515.66 , - 9225.44 , - 9935.22 , - 10645 , - 11354.8 , - 12064.6 , - 12774.4 ,
678+ - 13484.2 , - 14194 , - 70980.6 , - 212950 , - 709845 , - 1419700 , - 3549250 ),
679+ db , tolerance = 1e-5 ))
680+ # # all but the first two where -Inf in R <= 4.5.0
673681
674682
675683# # qpois(p, *) for invalid 'p' should give NaN -- PR#16972
0 commit comments