R Under development (unstable) (2025-10-10 r88914 ucrt) -- "Unsuffered Consequences" Copyright (C) 2025 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > #### qpois(), qbinom() and qnbinom() overflow much too early in the upper tail > #### ~~~~~ ~~~~~~ ~~~~~~~ > > if(!dev.interactive(orNone=TRUE)) pdf("qPoisBinom-ex.pdf") > .O.P. <- par(no.readonly=TRUE) > > ## NB: No bug here anymore --- fixed by this : > ## ------ > ## r86504 | maechler | 2024-05-01 10:43:29 +0200 (Mi, 01 Mai 2024) | 1 line > ## > ## fix discrete inversion p |--> q; for qbinom() and more: PR#18711 > > ## source ~/R/D/r-devel/R/src/nmath/qDiscrete_search.h > > relErrV <- sfsmisc::relErrV > > e <- c(-1000, -500, -200, -100, seq(-70,-1/4, by=1/4)) > lambda <- 10000 > qp <- qpois(2^e, lambda=lambda, lower.tail=FALSE) > > ## 'cbind_no_rownames' : > cbNoRN <- function(...) { + r <- cbind(...) + dimnames(r)[[1]] <- rep.int("", nrow(r)) + r + } > > cbNoRN(e, p=2^e, qpois=qp) e p qpois -1000.00 9.332636e-302 13934 -500.00 3.054936e-151 12728 -200.00 6.223015e-61 11687 -100.00 7.888609e-31 11170 -70.00 8.470329e-22 10967 -69.75 1.007298e-21 10965 -69.50 1.197885e-21 10963 -69.25 1.424534e-21 10961 -69.00 1.694066e-21 10960 -68.75 2.014595e-21 10958 -68.50 2.395771e-21 10956 -68.25 2.849068e-21 10954 -68.00 3.388132e-21 10952 -67.75 4.029190e-21 10950 -67.50 4.791542e-21 10948 -67.25 5.698136e-21 10946 -67.00 6.776264e-21 10945 -66.75 8.058381e-21 10943 -66.50 9.583084e-21 10941 -66.25 1.139627e-20 10939 -66.00 1.355253e-20 10937 -65.75 1.611676e-20 10935 -65.50 1.916617e-20 10933 -65.25 2.279254e-20 10931 -65.00 2.710505e-20 10929 -64.75 3.223352e-20 10927 -64.50 3.833234e-20 10925 -64.25 4.558509e-20 10923 -64.00 5.421011e-20 10921 -63.75 6.446705e-20 10920 -63.50 7.666467e-20 10918 -63.25 9.117017e-20 10916 -63.00 1.084202e-19 10914 -62.75 1.289341e-19 10912 -62.50 1.533293e-19 10910 -62.25 1.823403e-19 10908 -62.00 2.168404e-19 10906 -61.75 2.578682e-19 10904 -61.50 3.066587e-19 10902 -61.25 3.646807e-19 10900 -61.00 4.336809e-19 10898 -60.75 5.157364e-19 10896 -60.50 6.133174e-19 10894 -60.25 7.293614e-19 10892 -60.00 8.673617e-19 10890 -59.75 1.031473e-18 10888 -59.50 1.226635e-18 10886 -59.25 1.458723e-18 10884 -59.00 1.734723e-18 10882 -58.75 2.062946e-18 10880 -58.50 2.453269e-18 10878 -58.25 2.917446e-18 10876 -58.00 3.469447e-18 10874 -57.75 4.125891e-18 10872 -57.50 4.906539e-18 10870 -57.25 5.834891e-18 10868 -57.00 6.938894e-18 10866 -56.75 8.251782e-18 10863 -56.50 9.813078e-18 10861 -56.25 1.166978e-17 10859 -56.00 1.387779e-17 10857 -55.75 1.650356e-17 10855 -55.50 1.962616e-17 10853 -55.25 2.333956e-17 10851 -55.00 2.775558e-17 10849 -54.75 3.300713e-17 10847 -54.50 3.925231e-17 10845 -54.25 4.667913e-17 10843 -54.00 5.551115e-17 10840 -53.75 6.601426e-17 10838 -53.50 7.850462e-17 10836 -53.25 9.335826e-17 10834 -53.00 1.110223e-16 10832 -52.75 1.320285e-16 10830 -52.50 1.570092e-16 10828 -52.25 1.867165e-16 10826 -52.00 2.220446e-16 10823 -51.75 2.640570e-16 10821 -51.50 3.140185e-16 10819 -51.25 3.734330e-16 10817 -51.00 4.440892e-16 10815 -50.75 5.281140e-16 10812 -50.50 6.280370e-16 10810 -50.25 7.468660e-16 10808 -50.00 8.881784e-16 10806 -49.75 1.056228e-15 10804 -49.50 1.256074e-15 10802 -49.25 1.493732e-15 10799 -49.00 1.776357e-15 10797 -48.75 2.112456e-15 10795 -48.50 2.512148e-15 10793 -48.25 2.987464e-15 10790 -48.00 3.552714e-15 10788 -47.75 4.224912e-15 10786 -47.50 5.024296e-15 10784 -47.25 5.974928e-15 10781 -47.00 7.105427e-15 10779 -46.75 8.449825e-15 10777 -46.50 1.004859e-14 10775 -46.25 1.194986e-14 10772 -46.00 1.421085e-14 10770 -45.75 1.689965e-14 10768 -45.50 2.009718e-14 10765 -45.25 2.389971e-14 10763 -45.00 2.842171e-14 10761 -44.75 3.379930e-14 10758 -44.50 4.019437e-14 10756 -44.25 4.779943e-14 10754 -44.00 5.684342e-14 10751 -43.75 6.759860e-14 10749 -43.50 8.038873e-14 10747 -43.25 9.559885e-14 10744 -43.00 1.136868e-13 10742 -42.75 1.351972e-13 10740 -42.50 1.607775e-13 10737 -42.25 1.911977e-13 10735 -42.00 2.273737e-13 10732 -41.75 2.703944e-13 10730 -41.50 3.215549e-13 10728 -41.25 3.823954e-13 10725 -41.00 4.547474e-13 10723 -40.75 5.407888e-13 10720 -40.50 6.431099e-13 10718 -40.25 7.647908e-13 10715 -40.00 9.094947e-13 10713 -39.75 1.081578e-12 10710 -39.50 1.286220e-12 10708 -39.25 1.529582e-12 10705 -39.00 1.818989e-12 10703 -38.75 2.163155e-12 10700 -38.50 2.572439e-12 10698 -38.25 3.059163e-12 10695 -38.00 3.637979e-12 10693 -37.75 4.326310e-12 10690 -37.50 5.144879e-12 10688 -37.25 6.118327e-12 10685 -37.00 7.275958e-12 10683 -36.75 8.652621e-12 10680 -36.50 1.028976e-11 10677 -36.25 1.223665e-11 10675 -36.00 1.455192e-11 10672 -35.75 1.730524e-11 10670 -35.50 2.057952e-11 10667 -35.25 2.447331e-11 10664 -35.00 2.910383e-11 10662 -34.75 3.461048e-11 10659 -34.50 4.115903e-11 10656 -34.25 4.894661e-11 10654 -34.00 5.820766e-11 10651 -33.75 6.922096e-11 10648 -33.50 8.231806e-11 10646 -33.25 9.789323e-11 10643 -33.00 1.164153e-10 10640 -32.75 1.384419e-10 10638 -32.50 1.646361e-10 10635 -32.25 1.957865e-10 10632 -32.00 2.328306e-10 10629 -31.75 2.768839e-10 10627 -31.50 3.292723e-10 10624 -31.25 3.915729e-10 10621 -31.00 4.656613e-10 10618 -30.75 5.537677e-10 10615 -30.50 6.585445e-10 10612 -30.25 7.831458e-10 10610 -30.00 9.313226e-10 10607 -29.75 1.107535e-09 10604 -29.50 1.317089e-09 10601 -29.25 1.566292e-09 10598 -29.00 1.862645e-09 10595 -28.75 2.215071e-09 10592 -28.50 2.634178e-09 10589 -28.25 3.132583e-09 10586 -28.00 3.725290e-09 10583 -27.75 4.430142e-09 10580 -27.50 5.268356e-09 10577 -27.25 6.265167e-09 10574 -27.00 7.450581e-09 10571 -26.75 8.860283e-09 10568 -26.50 1.053671e-08 10565 -26.25 1.253033e-08 10562 -26.00 1.490116e-08 10559 -25.75 1.772057e-08 10556 -25.50 2.107342e-08 10553 -25.25 2.506067e-08 10550 -25.00 2.980232e-08 10547 -24.75 3.544113e-08 10544 -24.50 4.214685e-08 10540 -24.25 5.012133e-08 10537 -24.00 5.960464e-08 10534 -23.75 7.088227e-08 10531 -23.50 8.429370e-08 10527 -23.25 1.002427e-07 10524 -23.00 1.192093e-07 10521 -22.75 1.417645e-07 10518 -22.50 1.685874e-07 10514 -22.25 2.004853e-07 10511 -22.00 2.384186e-07 10508 -21.75 2.835291e-07 10504 -21.50 3.371748e-07 10501 -21.25 4.009707e-07 10497 -21.00 4.768372e-07 10494 -20.75 5.670581e-07 10490 -20.50 6.743496e-07 10487 -20.25 8.019413e-07 10483 -20.00 9.536743e-07 10480 -19.75 1.134116e-06 10476 -19.50 1.348699e-06 10473 -19.25 1.603883e-06 10469 -19.00 1.907349e-06 10466 -18.75 2.268233e-06 10462 -18.50 2.697398e-06 10458 -18.25 3.207765e-06 10454 -18.00 3.814697e-06 10451 -17.75 4.536465e-06 10447 -17.50 5.394797e-06 10443 -17.25 6.415531e-06 10439 -17.00 7.629395e-06 10435 -16.75 9.072930e-06 10432 -16.50 1.078959e-05 10428 -16.25 1.283106e-05 10424 -16.00 1.525879e-05 10420 -15.75 1.814586e-05 10416 -15.50 2.157919e-05 10412 -15.25 2.566212e-05 10408 -15.00 3.051758e-05 10403 -14.75 3.629172e-05 10399 -14.50 4.315837e-05 10395 -14.25 5.132424e-05 10391 -14.00 6.103516e-05 10386 -13.75 7.258344e-05 10382 -13.50 8.631675e-05 10378 -13.25 1.026485e-04 10373 -13.00 1.220703e-04 10369 -12.75 1.451669e-04 10364 -12.50 1.726335e-04 10360 -12.25 2.052970e-04 10355 -12.00 2.441406e-04 10351 -11.75 2.903338e-04 10346 -11.50 3.452670e-04 10341 -11.25 4.105940e-04 10336 -11.00 4.882812e-04 10331 -10.75 5.806675e-04 10326 -10.50 6.905340e-04 10321 -10.25 8.211879e-04 10316 -10.00 9.765625e-04 10311 -9.75 1.161335e-03 10306 -9.50 1.381068e-03 10301 -9.25 1.642376e-03 10295 -9.00 1.953125e-03 10290 -8.75 2.322670e-03 10284 -8.50 2.762136e-03 10279 -8.25 3.284752e-03 10273 -8.00 3.906250e-03 10267 -7.75 4.645340e-03 10261 -7.50 5.524272e-03 10255 -7.25 6.569503e-03 10249 -7.00 7.812500e-03 10243 -6.75 9.290681e-03 10236 -6.50 1.104854e-02 10230 -6.25 1.313901e-02 10223 -6.00 1.562500e-02 10216 -5.75 1.858136e-02 10209 -5.50 2.209709e-02 10202 -5.25 2.627801e-02 10194 -5.00 3.125000e-02 10187 -4.75 3.716272e-02 10179 -4.50 4.419417e-02 10171 -4.25 5.255603e-02 10162 -4.00 6.250000e-02 10154 -3.75 7.432544e-02 10145 -3.50 8.838835e-02 10135 -3.25 1.051121e-01 10125 -3.00 1.250000e-01 10115 -2.75 1.486509e-01 10104 -2.50 1.767767e-01 10093 -2.25 2.102241e-01 10081 -2.00 2.500000e-01 10067 -1.75 2.973018e-01 10053 -1.50 3.535534e-01 10037 -1.25 4.204482e-01 10020 -1.00 5.000000e-01 10000 -0.75 5.946036e-01 9976 -0.50 7.071068e-01 9945 -0.25 8.408964e-01 9900 > ## is all good now > > plot(qp ~ e, type = "b", subset = -(1:5), + main = paste0("qpois(2^e, lambda=",lambda, + ") - looks smooth now")) > > ## p(q(.)) ~= identity (but have *discrete*ness errors) : > l2p <- log2(ppois(qp, lambda=lambda, lower.tail=FALSE)) > relE <- relErrV(e, l2p) > > all.equal(e, l2p, tolerance = 0) # 0.001125 [1] "Mean relative difference: 0.001125218" > stopifnot(exprs = { + !is.unsorted(e) + 9800 < qp; qp < 14000 + diff(qp) < 0 + all.equal(e, l2p, tolerance = 0.002) + 0 < relE ; relE < 9e-3 + }) > > > ### __________ NB no bug anymore !!! ____________________________ > > ## qbinom() "same" problem -- ... solved now > qBin <- qbinom(2^e, size = 100, prob = 0.4, lower.tail=FALSE) > cbNoRN(e, p=2^e, qBin)[c(1, 75:85),] e p qBin -1000.00 9.332636e-302 100 -52.50 1.570092e-16 80 -52.25 1.867165e-16 80 -52.00 2.220446e-16 80 -51.75 2.640570e-16 80 -51.50 3.140185e-16 80 -51.25 3.734330e-16 79 -51.00 4.440892e-16 79 -50.75 5.281140e-16 79 -50.50 6.280370e-16 79 -50.25 7.468660e-16 79 -50.00 8.881784e-16 79 > > plot(qBin ~ e, type = "b", subset = -(1:5), + main = paste0("qbinom(2^e, size = 100, prob = 0.4, lower.tail=FALSE) -- ok now")) > abline(h=100, lty=3) > d.qB <- diff(qBin) > > pB <- pbinom(qBin, size=100, prob = 0.4, lower.tail=FALSE) > l2pB <- log2(pB[pB != 0]) > stopifnot(exprs = { + 100 >= qBin; qBin >= 35 + -8 <= d.qB; d.qB <= 0 + max(relErrV(e[pB != 0], l2pB)) < 0.20 + all.equal( e[pB != 0], l2pB, tolerance = 0.04) # 0.0281 + }) > > ## qnbinom() "same" -- > > qNB <- qnbinom(2^e, size = 100, prob = 0.4, lower.tail=FALSE) > cbNoRN(e, p=2^e, qNB) e p qNB -1000.00 9.332636e-302 1949 -500.00 3.054936e-151 1176 -200.00 6.223015e-61 664 -100.00 7.888609e-31 466 -70.00 8.470329e-22 397 -69.75 1.007298e-21 397 -69.50 1.197885e-21 396 -69.25 1.424534e-21 396 -69.00 1.694066e-21 395 -68.75 2.014595e-21 395 -68.50 2.395771e-21 394 -68.25 2.849068e-21 393 -68.00 3.388132e-21 393 -67.75 4.029190e-21 392 -67.50 4.791542e-21 391 -67.25 5.698136e-21 391 -67.00 6.776264e-21 390 -66.75 8.058381e-21 390 -66.50 9.583084e-21 389 -66.25 1.139627e-20 388 -66.00 1.355253e-20 388 -65.75 1.611676e-20 387 -65.50 1.916617e-20 387 -65.25 2.279254e-20 386 -65.00 2.710505e-20 385 -64.75 3.223352e-20 385 -64.50 3.833234e-20 384 -64.25 4.558509e-20 384 -64.00 5.421011e-20 383 -63.75 6.446705e-20 382 -63.50 7.666467e-20 382 -63.25 9.117017e-20 381 -63.00 1.084202e-19 381 -62.75 1.289341e-19 380 -62.50 1.533293e-19 379 -62.25 1.823403e-19 379 -62.00 2.168404e-19 378 -61.75 2.578682e-19 377 -61.50 3.066587e-19 377 -61.25 3.646807e-19 376 -61.00 4.336809e-19 376 -60.75 5.157364e-19 375 -60.50 6.133174e-19 374 -60.25 7.293614e-19 374 -60.00 8.673617e-19 373 -59.75 1.031473e-18 372 -59.50 1.226635e-18 372 -59.25 1.458723e-18 371 -59.00 1.734723e-18 371 -58.75 2.062946e-18 370 -58.50 2.453269e-18 369 -58.25 2.917446e-18 369 -58.00 3.469447e-18 368 -57.75 4.125891e-18 367 -57.50 4.906539e-18 367 -57.25 5.834891e-18 366 -57.00 6.938894e-18 366 -56.75 8.251782e-18 365 -56.50 9.813078e-18 364 -56.25 1.166978e-17 364 -56.00 1.387779e-17 363 -55.75 1.650356e-17 362 -55.50 1.962616e-17 362 -55.25 2.333956e-17 361 -55.00 2.775558e-17 360 -54.75 3.300713e-17 360 -54.50 3.925231e-17 359 -54.25 4.667913e-17 359 -54.00 5.551115e-17 358 -53.75 6.601426e-17 357 -53.50 7.850462e-17 357 -53.25 9.335826e-17 356 -53.00 1.110223e-16 355 -52.75 1.320285e-16 355 -52.50 1.570092e-16 354 -52.25 1.867165e-16 353 -52.00 2.220446e-16 353 -51.75 2.640570e-16 352 -51.50 3.140185e-16 351 -51.25 3.734330e-16 351 -51.00 4.440892e-16 350 -50.75 5.281140e-16 349 -50.50 6.280370e-16 349 -50.25 7.468660e-16 348 -50.00 8.881784e-16 347 -49.75 1.056228e-15 347 -49.50 1.256074e-15 346 -49.25 1.493732e-15 345 -49.00 1.776357e-15 345 -48.75 2.112456e-15 344 -48.50 2.512148e-15 343 -48.25 2.987464e-15 343 -48.00 3.552714e-15 342 -47.75 4.224912e-15 341 -47.50 5.024296e-15 341 -47.25 5.974928e-15 340 -47.00 7.105427e-15 339 -46.75 8.449825e-15 339 -46.50 1.004859e-14 338 -46.25 1.194986e-14 337 -46.00 1.421085e-14 337 -45.75 1.689965e-14 336 -45.50 2.009718e-14 335 -45.25 2.389971e-14 335 -45.00 2.842171e-14 334 -44.75 3.379930e-14 333 -44.50 4.019437e-14 333 -44.25 4.779943e-14 332 -44.00 5.684342e-14 331 -43.75 6.759860e-14 331 -43.50 8.038873e-14 330 -43.25 9.559885e-14 329 -43.00 1.136868e-13 329 -42.75 1.351972e-13 328 -42.50 1.607775e-13 327 -42.25 1.911977e-13 326 -42.00 2.273737e-13 326 -41.75 2.703944e-13 325 -41.50 3.215549e-13 324 -41.25 3.823954e-13 324 -41.00 4.547474e-13 323 -40.75 5.407888e-13 322 -40.50 6.431099e-13 322 -40.25 7.647908e-13 321 -40.00 9.094947e-13 320 -39.75 1.081578e-12 319 -39.50 1.286220e-12 319 -39.25 1.529582e-12 318 -39.00 1.818989e-12 317 -38.75 2.163155e-12 317 -38.50 2.572439e-12 316 -38.25 3.059163e-12 315 -38.00 3.637979e-12 314 -37.75 4.326310e-12 314 -37.50 5.144879e-12 313 -37.25 6.118327e-12 312 -37.00 7.275958e-12 312 -36.75 8.652621e-12 311 -36.50 1.028976e-11 310 -36.25 1.223665e-11 309 -36.00 1.455192e-11 309 -35.75 1.730524e-11 308 -35.50 2.057952e-11 307 -35.25 2.447331e-11 306 -35.00 2.910383e-11 306 -34.75 3.461048e-11 305 -34.50 4.115903e-11 304 -34.25 4.894661e-11 303 -34.00 5.820766e-11 303 -33.75 6.922096e-11 302 -33.50 8.231806e-11 301 -33.25 9.789323e-11 300 -33.00 1.164153e-10 300 -32.75 1.384419e-10 299 -32.50 1.646361e-10 298 -32.25 1.957865e-10 297 -32.00 2.328306e-10 297 -31.75 2.768839e-10 296 -31.50 3.292723e-10 295 -31.25 3.915729e-10 294 -31.00 4.656613e-10 294 -30.75 5.537677e-10 293 -30.50 6.585445e-10 292 -30.25 7.831458e-10 291 -30.00 9.313226e-10 291 -29.75 1.107535e-09 290 -29.50 1.317089e-09 289 -29.25 1.566292e-09 288 -29.00 1.862645e-09 287 -28.75 2.215071e-09 287 -28.50 2.634178e-09 286 -28.25 3.132583e-09 285 -28.00 3.725290e-09 284 -27.75 4.430142e-09 283 -27.50 5.268356e-09 283 -27.25 6.265167e-09 282 -27.00 7.450581e-09 281 -26.75 8.860283e-09 280 -26.50 1.053671e-08 279 -26.25 1.253033e-08 279 -26.00 1.490116e-08 278 -25.75 1.772057e-08 277 -25.50 2.107342e-08 276 -25.25 2.506067e-08 275 -25.00 2.980232e-08 274 -24.75 3.544113e-08 274 -24.50 4.214685e-08 273 -24.25 5.012133e-08 272 -24.00 5.960464e-08 271 -23.75 7.088227e-08 270 -23.50 8.429370e-08 269 -23.25 1.002427e-07 268 -23.00 1.192093e-07 268 -22.75 1.417645e-07 267 -22.50 1.685874e-07 266 -22.25 2.004853e-07 265 -22.00 2.384186e-07 264 -21.75 2.835291e-07 263 -21.50 3.371748e-07 262 -21.25 4.009707e-07 261 -21.00 4.768372e-07 261 -20.75 5.670581e-07 260 -20.50 6.743496e-07 259 -20.25 8.019413e-07 258 -20.00 9.536743e-07 257 -19.75 1.134116e-06 256 -19.50 1.348699e-06 255 -19.25 1.603883e-06 254 -19.00 1.907349e-06 253 -18.75 2.268233e-06 252 -18.50 2.697398e-06 251 -18.25 3.207765e-06 251 -18.00 3.814697e-06 250 -17.75 4.536465e-06 249 -17.50 5.394797e-06 248 -17.25 6.415531e-06 247 -17.00 7.629395e-06 246 -16.75 9.072930e-06 245 -16.50 1.078959e-05 244 -16.25 1.283106e-05 243 -16.00 1.525879e-05 242 -15.75 1.814586e-05 241 -15.50 2.157919e-05 240 -15.25 2.566212e-05 239 -15.00 3.051758e-05 238 -14.75 3.629172e-05 237 -14.50 4.315837e-05 236 -14.25 5.132424e-05 235 -14.00 6.103516e-05 234 -13.75 7.258344e-05 233 -13.50 8.631675e-05 232 -13.25 1.026485e-04 230 -13.00 1.220703e-04 229 -12.75 1.451669e-04 228 -12.50 1.726335e-04 227 -12.25 2.052970e-04 226 -12.00 2.441406e-04 225 -11.75 2.903338e-04 224 -11.50 3.452670e-04 223 -11.25 4.105940e-04 222 -11.00 4.882812e-04 220 -10.75 5.806675e-04 219 -10.50 6.905340e-04 218 -10.25 8.211879e-04 217 -10.00 9.765625e-04 216 -9.75 1.161335e-03 215 -9.50 1.381068e-03 213 -9.25 1.642376e-03 212 -9.00 1.953125e-03 211 -8.75 2.322670e-03 209 -8.50 2.762136e-03 208 -8.25 3.284752e-03 207 -8.00 3.906250e-03 206 -7.75 4.645340e-03 204 -7.50 5.524272e-03 203 -7.25 6.569503e-03 201 -7.00 7.812500e-03 200 -6.75 9.290681e-03 199 -6.50 1.104854e-02 197 -6.25 1.313901e-02 196 -6.00 1.562500e-02 194 -5.75 1.858136e-02 193 -5.50 2.209709e-02 191 -5.25 2.627801e-02 189 -5.00 3.125000e-02 188 -4.75 3.716272e-02 186 -4.50 4.419417e-02 184 -4.25 5.255603e-02 182 -4.00 6.250000e-02 181 -3.75 7.432544e-02 179 -3.50 8.838835e-02 177 -3.25 1.051121e-01 175 -3.00 1.250000e-01 172 -2.75 1.486509e-01 170 -2.50 1.767767e-01 168 -2.25 2.102241e-01 165 -2.00 2.500000e-01 163 -1.75 2.973018e-01 160 -1.50 3.535534e-01 157 -1.25 4.204482e-01 153 -1.00 5.000000e-01 149 -0.75 5.946036e-01 145 -0.50 7.071068e-01 139 -0.25 8.408964e-01 131 > ## now also fine: > range(dqNB <- diff(qNB)) [1] -773 0 > stopifnot(1949 >= qNB, qNB >= 131, + -773 <= dqNB, dqNB <= 0) > > (pNB <- pnbinom(qNB, size=100, prob = 0.4, lower.tail=FALSE)) [1] 7.257787e-302 2.292569e-151 5.696099e-61 5.819961e-31 8.455885e-22 [6] 8.455885e-22 1.130228e-21 1.130228e-21 1.509940e-21 1.509940e-21 [11] 2.016221e-21 2.690922e-21 2.690922e-21 3.589611e-21 4.786035e-21 [16] 4.786035e-21 6.378019e-21 6.378019e-21 8.495250e-21 1.130956e-20 [21] 1.130956e-20 1.504853e-20 1.504853e-20 2.001334e-20 2.660244e-20 [26] 2.660244e-20 3.534262e-20 3.534262e-20 4.692998e-20 6.228383e-20 [31] 6.228383e-20 8.261760e-20 8.261760e-20 1.095320e-19 1.451375e-19 [36] 1.451375e-19 1.922151e-19 2.544272e-19 2.544272e-19 3.365940e-19 [41] 3.365940e-19 4.450565e-19 5.881509e-19 5.881509e-19 7.768302e-19 [46] 1.025477e-18 1.025477e-18 1.352968e-18 1.352968e-18 1.784060e-18 [51] 2.351206e-18 2.351206e-18 3.096920e-18 4.076864e-18 4.076864e-18 [56] 5.363872e-18 5.363872e-18 7.053185e-18 9.269273e-18 9.269273e-18 [61] 1.217470e-17 1.598168e-17 1.598168e-17 2.096700e-17 2.749153e-17 [66] 2.749153e-17 3.602544e-17 3.602544e-17 4.718087e-17 6.175437e-17 [71] 6.175437e-17 8.078178e-17 1.056092e-16 1.056092e-16 1.379849e-16 [76] 1.801779e-16 1.801779e-16 2.351312e-16 3.066597e-16 3.066597e-16 [81] 3.997049e-16 5.206637e-16 5.206637e-16 6.778113e-16 8.818460e-16 [86] 8.818460e-16 1.146589e-15 1.489884e-15 1.489884e-15 1.934754e-15 [91] 2.510880e-15 2.510880e-15 3.256506e-15 4.220871e-15 4.220871e-15 [96] 5.467329e-15 7.077338e-15 7.077338e-15 9.155558e-15 1.183637e-14 [101] 1.183637e-14 1.529218e-14 1.974404e-14 1.974404e-14 2.547518e-14 [106] 3.284818e-14 3.284818e-14 4.232695e-14 5.450453e-14 5.450453e-14 [111] 7.013855e-14 9.019615e-14 9.019615e-14 1.159110e-13 1.488557e-13 [116] 1.910331e-13 1.910331e-13 2.449925e-13 3.139758e-13 3.139758e-13 [121] 4.021031e-13 5.146061e-13 5.146061e-13 6.581229e-13 8.410699e-13 [126] 1.074109e-12 1.074109e-12 1.370739e-12 1.748031e-12 1.748031e-12 [131] 2.227563e-12 2.836584e-12 3.609477e-12 3.609477e-12 4.589596e-12 [136] 5.831555e-12 5.831555e-12 7.404100e-12 9.393694e-12 1.190899e-11 [141] 1.190899e-11 1.508643e-11 1.909717e-11 2.415575e-11 2.415575e-11 [146] 3.053090e-11 3.855886e-11 4.866005e-11 4.866005e-11 6.135965e-11 [151] 7.731312e-11 9.733784e-11 9.733784e-11 1.224522e-10 1.539238e-10 [156] 1.933292e-10 1.933292e-10 2.426273e-10 3.042499e-10 3.812132e-10 [161] 3.812132e-10 4.772545e-10 5.970007e-10 7.461743e-10 7.461743e-10 [166] 9.318465e-10 1.162746e-09 1.449640e-09 1.805793e-09 1.805793e-09 [171] 2.247532e-09 2.794938e-09 3.472679e-09 4.311030e-09 4.311030e-09 [176] 5.347113e-09 6.626394e-09 8.204511e-09 1.014947e-08 1.014947e-08 [181] 1.254432e-08 1.549036e-08 1.911105e-08 2.355667e-08 2.900996e-08 [186] 2.900996e-08 3.569292e-08 4.387491e-08 5.388245e-08 6.611089e-08 [191] 8.103841e-08 9.924269e-08 9.924269e-08 1.214209e-07 1.484135e-07 [196] 1.812323e-07 2.210945e-07 2.694620e-07 3.280894e-07 3.990792e-07 [201] 3.990792e-07 4.849487e-07 5.887076e-07 7.139506e-07 8.649651e-07 [206] 1.046859e-06 1.265712e-06 1.528745e-06 1.844534e-06 2.223242e-06 [211] 2.676903e-06 2.676903e-06 3.219745e-06 3.868570e-06 4.643195e-06 [216] 5.566957e-06 6.667307e-06 7.976491e-06 9.532332e-06 1.137914e-05 [221] 1.356875e-05 1.616170e-05 1.922864e-05 2.285184e-05 2.712699e-05 [226] 3.216527e-05 3.809558e-05 4.506723e-05 5.325285e-05 6.285176e-05 [231] 7.409372e-05 1.026041e-04 1.205252e-04 1.414059e-04 1.657030e-04 [236] 1.939383e-04 2.267061e-04 2.646832e-04 3.086382e-04 3.594428e-04 [241] 4.856758e-04 5.634773e-04 6.529043e-04 7.555485e-04 8.731954e-04 [246] 1.007844e-03 1.337339e-03 1.537449e-03 1.765139e-03 2.317274e-03 [251] 2.649662e-03 3.025578e-03 3.450066e-03 4.467393e-03 5.072884e-03 [256] 6.513482e-03 7.364846e-03 8.315535e-03 1.055498e-02 1.186564e-02 [261] 1.492935e-02 1.670899e-02 2.083627e-02 2.582670e-02 2.868813e-02 [266] 3.523467e-02 4.300827e-02 5.217025e-02 5.732372e-02 6.888032e-02 [271] 8.224102e-02 9.756506e-02 1.245481e-01 1.453782e-01 1.685854e-01 [276] 2.079476e-01 2.372125e-01 2.854655e-01 3.384981e-01 4.152699e-01 [281] 4.965644e-01 5.791567e-01 6.977886e-01 8.299479e-01 > l2pN <- log2(pNB[pNB != 0]) > all.equal(e[pNB != 0], l2pN, tolerance = 0.) # 0.00377 [1] "Mean relative difference: 0.003773141" > stopifnot(exprs = { + all.equal( e[pNB != 0], l2pN, tolerance = 0.01) + max(relErrV(e[pNB != 0], l2pN)) <= 0.1 # 0.0756 + }) > > > > require(DPQ) Loading required package: DPQ > ## Embarrassing forgotten FIXME (for boring boundary cases only): > M <- 2^31; pr <- 1e-9 > stopifnot(exprs = { + qbinomR (0:1, size=M, prob=pr) == c(0, M) # was 0 1 + qnbinomR(0:1, size=M, prob=pr) == c(0, Inf) # " " + qpoisR (0:1, M) == c(0, Inf) + qbinomR (c(-Inf,0), size=M, prob=pr, log.p=TRUE) == c(0, M) + qnbinomR(c(-Inf,0), size=M, prob=pr, log.p=TRUE) == c(0, Inf) + qpoisR (c(-Inf,0), M, log.p=TRUE) == c(0, Inf) + + ## The same for the plain R versions + qbinom (0:1, size=M, prob=pr) == c(0, M) + qnbinom(0:1, size=M, prob=pr) == c(0, Inf) + qpois (0:1, M) == c(0, Inf) + qbinom (c(-Inf,0), size=M, prob=pr, log.p=TRUE) == c(0, M) + qnbinom(c(-Inf,0), size=M, prob=pr, log.p=TRUE) == c(0, Inf) + qpois (c(-Inf,0), M, log.p=TRUE) == c(0, Inf) + }) > > proc.time() user system elapsed 0.40 0.03 0.42