| options(warn = 2)# warnings are errors here |
| pdf("p-qbeta-strict-tst.pdf") |
| |
| a <- 25; b <- 6 |
| x <- 2^-(300:200) |
| if(interactive() && require(Rmpfr)) { |
| pbi <- pbetaI(x, a,b, log.p=TRUE, precBits = 2048) |
| ## plus experiments, to see that 2048 bits are way enough ... |
| dput(format(roundMpfr(pbi, 64))) ## |
| } ## plus manual editing, removing all ' " ' : |
| |
| lpb <- c( |
| -5186.73671481652222237, -5169.40803530252358966, -5152.07935578852495651, |
| -5134.75067627452632379, -5117.42199676052769108, -5100.09331724652905837, |
| -5082.76463773253042566, -5065.43595821853179295, -5048.10727870453316024, |
| -5030.77859919053452753, -5013.44991967653589482, -4996.12124016253726211, |
| -4978.79256064853862940, -4961.46388113453999669, -4944.13520162054136398, |
| -4926.80652210654273127, -4909.47784259254409855, -4892.14916307854546584, |
| -4874.82048356454683313, -4857.49180405054820042, -4840.16312453654956727, |
| -4822.83444502255093456, -4805.50576550855230185, -4788.17708599455366913, |
| -4770.84840648055503642, -4753.51972696655640371, -4736.19104745255777100, |
| -4718.86236793855913829, -4701.53368842456050558, -4684.20500891056187287, |
| -4666.87632939656324016, -4649.54764988256460745, -4632.21897036856597474, |
| -4614.89029085456734203, -4597.56161134056870932, -4580.23293182657007661, |
| -4562.90425231257144389, -4545.57557279857281118, -4528.24689328457417803, |
| -4510.91821377057554532, -4493.58953425657691261, -4476.26085474257827990, |
| -4458.93217522857964719, -4441.60349571458101448, -4424.27481620058238176, |
| -4406.94613668658374905, -4389.61745717258511634, -4372.28877765858648363, |
| -4354.96009814458785092, -4337.63141863058921821, -4320.30273911659058550, |
| -4302.97405960259195279, -4285.64538008859332008, -4268.31670057459468737, |
| -4250.98802106059605466, -4233.65934154659742195, -4216.33066203259878879, |
| -4199.00198251860015608, -4181.67330300460152337, -4164.34462349060289066, |
| -4147.01594397660425795, -4129.68726446260562524, -4112.35858494860699253, |
| -4095.02990543460835982, -4077.70122592060972710, -4060.37254640661109439, |
| -4043.04386689261246168, -4025.71518737861382897, -4008.38650786461519626, |
| -3991.05782835061656333, -3973.72914883661793062, -3956.40046932261929791, |
| -3939.07178980862066520, -3921.74311029462203249, -3904.41443078062339977, |
| -3887.08575126662476706, -3869.75707175262613435, -3852.42839223862750164, |
| -3835.09971272462886871, -3817.77103321063023600, -3800.44235369663160329, |
| -3783.11367418263297058, -3765.78499466863433787, -3748.45631515463570516, |
| -3731.12763564063707245, -3713.79895612663843973, -3696.47027661263980702, |
| -3679.14159709864117409, -3661.81291758464254138, -3644.48423807064390867, |
| -3627.15555855664527596, -3609.82687904264664325, -3592.49819952864801054, |
| -3575.16952001464937783, -3557.84084050065074512, -3540.51216098665211240, |
| -3523.18348147265347947, -3505.85480195865484676, -3488.52612244465621405, |
| -3471.19744293065758134, -3453.86876341665894863) |
| stopifnot( all.equal(lpb, pbeta(x,a,b,log.=TRUE), tol=2e-16) )# pbeta() check |
| |
| |
| qpb <- qbeta(lpb, a,b, log.p=TRUE) |
| stopifnot(qpb > 0)# ok R >= 3.2.0, not in R 3.1.x |
| ## ideally x == qbeta(pbeta(x, *), *) : |
| all.equal(x, qpb, tol=0)# now: 4.986e-15 (was 5.238e-15) |
| relE <- 1 - qpb/x |
| mean(abs(relE)) # 1.145508e-14 (was 1.3182e-14) |
| stopifnot(mean(abs(relE)) < 4e-14, |
| max (abs(relE)) < 1e-13) |
| |
| ## a less extreme set -- but which uses *many* Newton iterations in qbeta() |
| a <- 25; b <- 6 |
| x1 <- 2^-((20:120)/8) |
| if(interactive() && require(Rmpfr)) { |
| pbi <- pbetaI(x, a,b, log.p=TRUE, precBits = 2048) |
| ## plus experiments, to see that 2048 bits are way enough ... |
| dput(format(roundMpfr(pbi, 64))) ## |
| } ## plus manual editing, removing all ' " ' : |
| |
| lp1 <- c( |
| -32.3854423368776834953, -34.4673775119354555037, -36.5575116684945878344, |
| -38.6549408996236989744, -40.7588797271766572448, -42.8686422494639326058, |
| -44.9836268805878782655, -47.1033038887113481505, -49.2272051373989160267, |
| -51.3549155771523890938, -53.4860661393789178081, -55.6203277631858045461, |
| -57.7574063441183625303, -59.8970384385116822318, -62.0389875912418167943, |
| -64.1830411810069771730, -66.3290076977781794185, -68.4767143831449023872, |
| -70.6260051769883206996, -72.7767389240201063513, -74.9287878018119846216, |
| -77.0820359384527194757, -79.2363781932417950496, -81.3917190781217361681, |
| -83.5479718010642398301, -85.7050574155147660699, -87.8629040623880331051, |
| -90.0214462930893329073, -92.1806244636893542185, -94.3403841917643962364, |
| -96.5006758685776125997, -98.6614542202591991785, -100.822677912475871277, |
| -102.984309193787888156, -105.146313573496065365, -107.308659530298884925, |
| -109.471318248524419364, -111.634263379085354198, -113.797470822637087941, |
| -115.960918532706589869, -118.124586336810151355, -120.288455773796669625, |
| -122.452509945844263323, -124.616733383705931573, -126.781111923947395655, |
| -128.945632597050500942, -131.110283525370608940, -133.275053830038264766, |
| -135.439933545985967511, -137.604913544361364852, -139.769985461659902712, |
| -141.935141634974191005, -144.100375042814531426, -146.265679251006534833, |
| -148.431048363217896496, -150.596476975707801879, -152.761960135929819787, |
| -154.927493304652777115, -157.093072321294422056, -159.258693372190260479, |
| -161.424352961544612370, -163.590047884833502595, -165.755775204449382204, |
| -167.921532227396093043, -170.087316484859319879, -172.253125713493005638, |
| -174.418957838276008993, -176.584810956806029708, -178.750683324909148353, |
| -180.916573343453874659, -183.082479546268141732, -185.248400589066309921, |
| -187.414335239301226746, -189.580282366863611607, -191.746240935557583460, |
| -193.912209995287317457, -196.078188674895169383, -198.244176175596733075, |
| -200.410171764962911981, -202.576174771403232380, -204.742184579108529904, |
| -206.908200623414650632, -209.074222386551973982, -211.240249393748649162, |
| -213.406281209657976525, -215.572317435082926512, -217.738357703973061677, |
| -219.904401680671135980, -222.070449057388595873, -224.236499551890932400, |
| -226.402552905375368947, -228.568608880524961821, -230.734667259724367416, |
| -232.900727843423843350, -235.066790448639183389, -237.232854907576249937, |
| -239.398921066369763294, -241.564988783926857030, -243.731057930866643141, |
| -245.897128388547890981, -248.063200048177428608) |
| stopifnot( all.equal(lp1, pbeta(x1,a,b,log.=TRUE), tol=2e-16) )# pbeta() check |
| |
| qp1 <- qbeta(lp1, a,b, log.p=TRUE) |
| stopifnot(qp1 > 0) |
| ## ideally x == qbeta(pbeta(x, *), *) : |
| all.equal(x1, qp1, tol=0)# now: 2.99e-16 , but |
| relE <- 1 - qp1/x1 |
| mean(abs(relE)) # 5.463177e-16 was 6.089738e-16 |
| stopifnot(mean(abs(relE)) < 3e-15, |
| max (abs(relE)) < 1e-14) |
| |
| ## log.p=FALSE: --- here (with DEBUG), see number of Newton steps |
| |
| p1 <- exp(lp1) |
| qp1. <- qbeta(p1, a,b) |
| ## --> many cases that need "too many" Newton steps (on x0 scale: rather use log(x)-scale!) |
| |
| relE. <- 1 - qp1./x1 |
| mean(abs(relE.)) # 4.078146e-16 |
| max(abs(relE.)) # 1.332268e-15 |
| all.equal(qp1, qp1., tol=0) # 3.083e-16 |
| stopifnot(all.equal(qp1, qp1., tol=8*.Machine$double.eps), |
| mean(abs(relE.)) < 2e-15, |
| max (abs(relE.)) < 7e-15 ) |
| |
| |
| a <- 43779; b <- 0.06728; x <- -exp(901/256) |
| (qx <- qbeta(x , a,b, log=TRUE)) ## (157 iterations in log_x scale); fast in orig.scale |
| ## 0.9993614 |
| (pq <- pbeta(qx, a,b, log=TRUE)) ## = -33.7686 |
| 1 - pq/x # rel.err ~ 8.88e-16 "perfect" |
| stopifnot(abs(1 - pq/x) < 1e-15) |
| ## but it uses probably the wrong swap_tail decision... |
| curve(pbeta(exp(x), a,b, log=TRUE), -1e-3, -1e-7, n=1025) # "the same" as |
| par(new=TRUE) |
| curve(pbeta( x, a,b, log=TRUE), 0.999, 1-1e-7, col=2, ylab="", xaxt="n"); axis(3) |
| abline(v = qx, h = x, col="light blue", lty = 2) |
| |
| ## as is this one -- the mirror image: |
| (x. <- log1p(-exp(x))) # -2.160156e-15 |
| (q. <- qbeta(x., b,a, log=TRUE, lower.tail=FALSE))# very quick convergence: u0 is perfect |
| ## 1.425625e-223 |
| (p. <- pbeta(q., b,a, log=TRUE, lower.tail=FALSE)) |
| stopifnot(all.equal(p., x., tol = 1e-15)) |
| |
| ## very different picture at the *other tail*: |
| (q2 <- qbeta(x., b,a, log=TRUE)) ## 0.0006386087 |
| stopifnot(all.equal(pbeta(q2, b,a, log=TRUE), x., tol= 1e-13)) # Lx 64b: 2.37e-15 |
| |
| curve(pbeta(x, b,a, log=TRUE), 1e-30, .5, n=1025, log="x") |
| # Flip vertically and use log scale ==> "close" to -x. = 2.160156e-15 |
| curve(-pbeta(x, b,a, log=TRUE), 1e-8, .005, n=1025, log="xy") |
| abline(v = q2, h = -x., lty=3, col=2) |
| |
| ### more extreme (a,b) [still computable with Rmpfr pbetaI():] |
| a <- 800; b <- 2 |
| x <- 2^-c(10*(100:4), 37, 2*(17:14), 27:2, (8:1)/8) |
| curve(pbeta(x,a,b, log=TRUE), n=1025, log="x", 1e-200, .1); mtext(R.version.string) |
| axis(1, at=0.1); abline(h=0, lty=2) |
| |
| if(interactive() && require(Rmpfr)) { |
| pbi <- pbetaI(x, a,b, log.p=TRUE, precBits = 2048) |
| ## plus experiments, to see that 2048 bits are way enough ... |
| dput(format(roundMpfr(pbi, 64))) ## |
| stopifnot( all.equal(pbi, pbeta(x,a,b,log.=TRUE), tol=2e-16) ) |
| } ## plus manual editing, removing all ' " ' : |
| |
| lp2 <- c(-554511.058587009179178, -548965.881142529616682, -543420.703698050054243, |
| -537875.526253570491747, -532330.348809090929251, -526785.171364611366812, |
| -521239.993920131804316, -515694.816475652241849, -510149.639031172679381, |
| -504604.461586693116885, -499059.284142213554418, -493514.106697733991950, |
| -487968.929253254429483, -482423.751808774866987, -476878.574364295304520, |
| -471333.396919815742052, -465788.219475336179556, -460243.042030856617089, |
| -454697.864586377054621, -449152.687141897492154, -443607.509697417929658, |
| -438062.332252938367191, -432517.154808458804723, -426971.977363979242256, |
| -421426.799919499679760, -415881.622475020117292, -410336.445030540554825, |
| -404791.267586060992329, -399246.090141581429862, -393700.912697101867394, |
| -388155.735252622304927, -382610.557808142742431, -377065.380363663179963, |
| -371520.202919183617496, -365975.025474704055000, -360429.848030224492533, |
| -354884.670585744930065, -349339.493141265367598, -343794.315696785805102, |
| -338249.138252306242634, -332703.960807826680167, -327158.783363347117700, |
| -321613.605918867555204, -316068.428474387992736, -310523.251029908430269, |
| -304978.073585428867773, -299432.896140949305305, -293887.718696469742838, |
| -288342.541251990180371, -282797.363807510617875, -277252.186363031055407, |
| -271707.008918551492940, -266161.831474071930444, -260616.654029592367976, |
| -255071.476585112805509, -249526.299140633243027, -243981.121696153680560, |
| -238435.944251674118078, -232890.766807194555611, -227345.589362714993129, |
| -221800.411918235430647, -216255.234473755868180, -210710.057029276305698, |
| -205164.879584796743231, -199619.702140317180749, -194074.524695837618282, |
| -188529.347251358055800, -182984.169806878493333, -177438.992362398930851, |
| -171893.814917919368369, -166348.637473439805902, -160803.460028960243420, |
| -155258.282584480680953, -149713.105140001118471, -144167.927695521556004, |
| -138622.750251041993522, -133077.572806562431055, -127532.395362082868573, |
| -121987.217917603306098, -116442.040473123743624, -110896.863028644181149, |
| -105351.685584164618675, -99806.5081396850562001, -94261.3306952054937184, |
| -88716.1532507259312439, -83170.9758062463687693, -77625.7983617668062948, |
| -72080.6209172872438202, -66535.4434728076813457, -60990.2660283281188711, |
| -55445.0885838485563930, -49899.9111393689939185, -44354.7336948894314439, |
| -38809.5562504098689693, -33264.3788059303064912, -27719.2013614507440185, |
| -22174.0239169711824498, -20510.4706836273200672, -18846.9174502835021912, |
| -17737.8819613877641022, -16628.8464724925492266, -15519.8109835994272112, |
| -14965.2932391551916034, -14410.7754947146766344, -13856.2577502816029460, |
| -13301.7400058634118150, -12747.2222614749858050, -12192.7045171460900432, |
| -11638.1867729362548083, -11083.6690289645407566, -10529.1512854690695820, |
| -9974.63354292608620089, -9420.11580228808657456, -8865.59806546008711603, |
| -8311.08033625221863883, -7756.56262228513473200, -7202.04493880171055809, |
| -6647.52731629396961299, -6093.00981577106128650, -5538.49255935177176768, |
| -4983.97579167624661567, -4429.46000364007375882, -3874.94618353590282056, |
| -3320.43633428133439223, -2765.93456971959801893, -2211.44957214006085544, |
| -1657.00072545683415248, -1102.63689396137728749, -548.523783020649678355, |
| -479.303685612597087790, -410.103507771019607286, -340.930746845646155091, |
| -271.797948987745926763, -202.728589967468744076, -133.775198381652975971, |
| -65.1041210297877634069) |
| stopifnot( all.equal(lp2, pbeta(x,a,b,log.=TRUE), tol=2e-16) )# pbeta() check |
| |
| qp2 <- qbeta(lp2, a,b, log.p=TRUE)# 7 precision warnings in R <= 3.1.0 |
| pq2 <- pbeta(qp2, a,b, log.p=TRUE) |
| stopifnot(qp2 > 0, is.finite(pq2)) |
| ## ideally x == qbeta(pbeta(x, *), *) : |
| all.equal( x, qp2, tol=0)# 2.075e-16 was 1.956845e-08, but .. *misleading* a bit |
| all.equal(log(x), log(qp2), tol=0)# 1.676e-16 was 1.0755 !! |
| plot(qp2 ~ lp2, log='y', type='b', sub=R.version.string); V <- -5e4; abline(v = V, lty=3) |
| plot(qp2 ~ lp2, log='y', type='b', sub=R.version.string, subset = lp2 > V) |
| ## ideally lp2 == pbeta(qbeta(lp2, *), *) : |
| all.equal(lp2, pq2, tol=0)# 1.26e-16; was 1.07... |
| plot(lp2, pq2, type='b', sub=R.version.string) |
| plot(pq2 ~ lp2, type='b', sub=R.version.string, subset = log2(x) >= -80) |
| axis(3, at=lp2, labels=log2(x), col="blue3") |
| |
| relE <- 1 - qp2/x |
| rel2 <- 1 - pq2/lp2 |
| mean(abs(relE)) # 1.53e-14 was 0.9913043 (R 3.1.0), then 0.8521738 |
| mean(abs(rel2)) # ~ 3e-17 (!); was 0.9913043 (R 3.1.0), then 0.8521738 |
| stopifnot(mean(abs(relE)) < 7e-14, |
| max (abs(relE)) < 6e-13, |
| mean(abs(rel2)) < 4e-16, |
| max (abs(rel2)) < 8e-16) |
| |
| |
| ### even more extreme (a,b) [still computable with Rmpfr pbetaI():] |
| a <- 2^12; b <- 2 |
| x <- 2^-c(10*(100:2), 17, 2*(7:4), 7:1, .5, .25) |
| curve(pbeta(x,a,b, log=TRUE), n=1025, log="x", 1e-300, .1);mtext(R.version.string) |
| |
| if(interactive() && require(Rmpfr)) { |
| pbi <- pbetaI(x, a,b, log.p=TRUE, precBits = 2048) |
| ## plus experiments, to see that 2048 bits are way enough ... |
| dput(format(roundMpfr(pbi, 64))) ## |
| stopifnot( all.equal(pbi, pbeta(x,a,b,log.=TRUE), tol=2e-16) ) |
| } ## plus manual editing, removing all ' " ' : |
| |
| lp3 <- c(-2839122.53356325844061, -2810731.22504752308055, -2782339.91653178772071, |
| -2753948.60801605236088, -2725557.29950031700105, -2697165.99098458164121, |
| -2668774.68246884628115, -2640383.37395311092132, -2611992.06543737556149, |
| -2583600.75692164020165, -2555209.44840590484182, -2526818.13989016948199, |
| -2498426.83137443412193, -2470035.52285869876209, -2441644.21434296340226, |
| -2413252.90582722804243, -2384861.59731149268259, -2356470.28879575732276, |
| -2328078.98028002196270, -2299687.67176428660287, -2271296.36324855124303, |
| -2242905.05473281588320, -2214513.74621708052337, -2186122.43770134516330, |
| -2157731.12918560980347, -2129339.82066987444364, -2100948.51215413908380, |
| -2072557.20363840372386, -2044165.89512266836402, -2015774.58660693300419, |
| -1987383.27809119764424, -1958991.96957546228441, -1930600.66105972692458, |
| -1902209.35254399156463, -1873818.04402825620480, -1845426.73551252084496, |
| -1817035.42699678548502, -1788644.11848105012518, -1760252.80996531476535, |
| -1731861.50144957940540, -1703470.19293384404557, -1675078.88441810868562, |
| -1646687.57590237332579, -1618296.26738663796596, -1589904.95887090260601, |
| -1561513.65035516724618, -1533122.34183943188634, -1504731.03332369652639, |
| -1476339.72480796116656, -1447948.41629222580673, -1419557.10777649044678, |
| -1391165.79926075508695, -1362774.49074501972711, -1334383.18222928436717, |
| -1305991.87371354900733, -1277600.56519781364750, -1249209.25668207828755, |
| -1220817.94816634292772, -1192426.63965060756777, -1164035.33113487220794, |
| -1135644.02261913684811, -1107252.71410340148816, -1078861.40558766612833, |
| -1050470.09707193076849, -1022078.78855619540860, -993687.480040460048713, |
| -965296.171524724688823, -936904.863008989328989, -908513.554493253969099, |
| -880122.245977518609209, -851730.937461783249319, -823339.628946047889485, |
| -794948.320430312529595, -766557.011914577169705, -738165.703398841809872, |
| -709774.394883106449981, -681383.086367371090091, -652991.777851635730201, |
| -624600.469335900370368, -596209.160820165010477, -567817.852304429650587, |
| -539426.543788694290754, -511035.235272958930864, -482643.926757223570974, |
| -454252.618241488211112, -425861.309725752851222, -397470.001210017491360, |
| -369078.692694282131498, -340687.384178546771608, -312296.075662811411746, |
| -283904.767147076051856, -255513.458631340691994, -227122.150115605332118, |
| -198730.841599869972242, -170339.533084134612366, -141948.224568399252504, |
| -113556.916052663893531, -85165.6075369294638477, -56774.2990221466148739, |
| -48256.9064741001263457, -39739.5139727740774909, -34061.2524527157125043, |
| -28382.9914822588674710, -22704.7327152528820928, -19865.6057919927700013, |
| -17026.4828436463425554, -14187.3679884148968711, -11348.2699182657980446, |
| -8509.20804096757424162, -5670.23129358494148988, -2831.50574442529708752, |
| -1412.47477359632328309, -703.301613239304818981) |
| stopifnot( all.equal(lp3, pbeta(x,a,b,log.=TRUE), tol=2e-16) )# pbeta() check |
| |
| qp3 <- qbeta(lp3, a,b, log.p=TRUE) |
| pq3 <- pbeta(qp3, a,b, log.p=TRUE) |
| stopifnot(qp3 > 0, is.finite(pq3)) |
| ## ideally x == qbeta(pbeta(x, *), *) : |
| all.equal( x, qp3, tol=0)# 1.599e-16 |
| all.equal(log(x), log(qp3), tol=0)# 1.405e-16 |
| ## ideally lp3 == pbeta(qbeta(lp3, *), *) : |
| all.equal(lp3, pq3, tol=0)# 1.07... then TRUE! |
| |
| plot(pq3 ~ lp3, type='b', sub=R.version.string, subset = log2(x) >= -50) |
| axis(3, at=lp3, labels=log2(x), col="blue2", col.axis="blue2") |
| |
| relE <- 1 - qp3/x |
| rel2 <- 1 - pq3/lp3 |
| mean(abs(relE))# 1.518e-14 \\ 3.584e-14 for --disable-long-double |
| mean(abs(rel2))# 0 !! |
| |
| stopifnot(mean(abs(rel2)) < 3e-15, |
| mean(abs(relE)) < 8e-14, |
| max (abs(relE)) < 4e-13)# 5.251e-14 \\ 2.140e-13 w/o long-double |
| |
| ### pbeta() warnings /// close to underflow situation ---- |
| options(warn = 1)# warnings allowed, happen immediately |
| |
| ## b = 1 ==> pbeta(x,a,1) = x^a (mathematically, not quite numerically) |
| |
| x <- 1e-311*2^(-2:5) |
| |
| a <- 9.9999e-16 |
| ##==> all work via apser(): |
| all.equal(x^a, pbeta(x, a, 1), tol=0) # 1.11e-16 -- perfect |
| all.equal(a*log(x), pbeta(x, a, 1, log=TRUE), tol=0)# 3.5765e-14 -- less perfect |
| |
| ## only very slightly larger a: |
| a <- 1e-15 |
| all.equal(x^a, pbeta(x, a, 1), tol=0)# warnings ! # 7.12208e-13 |
| ## this gives *TWO* warnings per pbeta() !! --- no longer [pbeta / toms708.c fixed] |
| all.equal(a*log(x), pbeta(x, a, 1, log=TRUE), tol=0)# 0.853 ... catastrophic! |
| |
| ## pbeta(*, log.p=TRUE) now underflows to -Inf too often |
| ## If it does it *should* give a warning, at least! |
| try.pb <- function(x, a,b, log.p=TRUE) |
| tryCatch(pbeta(x, a,b, log.p=log.p), error=identity, warning=identity) |
| check.pb <- function(pb, true) |
| stopifnot((inherits(pb, "warning") && grepl("\\bInf\\b", pb$message)) || |
| isTRUE(all.equal(print(pb), true, tol = 2e-7))) # << print(.) : see value |
| |
| ## True values via require(Rmpfr); asNumeric(pbetaI(326/512, 1900, 38, log=TRUE)) |
| ## |
| ## Those with*out* a '#' mark all did *not* underflow in R 2.9.1, nor R 2.10.1, |
| ## but did give NaN in 2.11.x (x >= 0) and -Inf later === *regression* _FIXME_ |
| ## i.e., the fix for PR#14230 pbeta(x, 3, 2200, lower.tail=FALSE, log.p=TRUE), |
| ## svn diff -c51327 (2010-03-19) was *not* helpful in these cases |
| ## |
| check.pb(try.pb(437/512, 4711, 19), true = -664.8560)# did work in R <= 2.10.1 (see above) |
| check.pb(try.pb(442/512, 4998, 19), true = -653.6326) |
| check.pb(try.pb(430/512, 4208, 20), true = -649.9831) |
| check.pb(try.pb(428/512, 4348, 20), true = -693.6123) |
| check.pb(try.pb(429/512, 4348, 20), true = -683.6925) |
| check.pb(try.pb(421/512, 4012, 21), true = -695.9839) |
| check.pb(try.pb(422/512, 4012, 21), true = -686.6862) |
| check.pb(try.pb(423/512, 4012, 21), true = -677.4135) |
| check.pb(try.pb(441/512, 4969, 20), true = -656.8775) |
| check.pb(try.pb(442/512, 4969, 20), true = -645.8918) |
| check.pb(try.pb(443/512, 4969, 20), true = -634.9354) |
| |
| check.pb(try.pb(407/512, 3455, 22), true = -700.4242) |
| check.pb(try.pb(435/512, 4996, 23), true = -716.9553) |
| check.pb(try.pb(397/512, 3000, 24), true = -664.8547) |
| check.pb(try.pb(397/512, 3070, 24), true = -682.1341) |
| check.pb(try.pb(393/512, 3070, 24), true = -712.4377) |
| check.pb(try.pb(412/512, 3530, 24), true = -668.2493) |
| |
| check.pb(try.pb(400/512, 3085, 25), true = -659.8754) |
| check.pb(try.pb(409/512, 3352, 25), true = -651.2284) |
| check.pb(try.pb(400/512, 3352, 25), true = -723.8049) |
| check.pb(try.pb(415/512, 3541, 25), true = -642.2389) |
| check.pb(try.pb(430/512, 4291, 25), true = -646.8498) |
| |
| check.pb(try.pb(377/512, 2551, 26), true = -675.8778) |
| check.pb(try.pb(370/512, 2551, 26), true = -722.4272) |
| check.pb(try.pb(412/512, 3505, 26), true = -656.3025) |
| |
| check.pb(try.pb(370/512, 2499, 27), true = -702.7537) |
| check.pb(try.pb(367/512, 2499, 27), true = -722.5556) |
| |
| check.pb(try.pb(363/512, 2318, 28), true = -685.6969) |
| check.pb(try.pb(360/512, 2399, 28), true = -732.005) |
| |
| check.pb(try.pb(348/512, 2158, 29), true = -717.8487) |
| check.pb(try.pb(367/512, 2397, 29), true = -683.2321) |
| check.pb(try.pb(380/512, 2661, 29), true = -678.227) |
| |
| check.pb(try.pb(362/512, 2292, 30), true = -676.8534) |
| check.pb(try.pb(369/512, 2495, 30), true = -698.3849) |
| |
| check.pb(try.pb(326/512, 1900, 38), true = -714.7700) |
| ## all those check.pb() above *did* work in R <= 2.10.1 ---- |
| |
| ## all those below have always underflowed (or worse) -- now give *warning* at least: |
| check.pb(try.pb(412/512, 4996, 23), true = -982.6083)# |
| check.pb(try.pb(400/512, 4291, 25), true = -949.7046)# |
| |
| check.pb(try.pb(370/512, 3700, 28), true = -1079.069)# |
| check.pb(try.pb(401/512, 3700, 28), true = -788.0158)# |
| check.pb(try.pb(351/512, 4777, 28), true = -1670.472)# |
| |
| check.pb(try.pb(365/512, 3699, 29), true = -1124.502)# |
| check.pb(try.pb(341/512, 2146, 30), true = -752.5865)# |
| |
| check.pb(try.pb(289/512, 1900, 38), true = -936.9607)# |
| check.pb(try.pb(290/512, 1900, 38), true = -930.5637)# |
| check.pb(try.pb(293/512, 1900, 38), true = -911.5123)# |
| check.pb(try.pb(295/512, 1900, 38), true = -898.9261)# |
| check.pb(try.pb(296/512, 1900, 38), true = -892.6670)# |
| check.pb(try.pb(302/512, 1900, 38), true = -855.5796)# |
| check.pb(try.pb(305/512, 1900, 38), true = -837.3302)# |
| check.pb(try.pb(308/512, 1900, 38), true = -819.2725)# |