x <- (-2:1)/2
logcf (x, 2,3, eps=1e-7, trace=TRUE) # shows iterations for each x[]
logcfR_vec(x, 2,3, eps=1e-7, trace=TRUE) # 1 line per x[]
logcfR_vec(x, 2,3, eps=1e-7, trace= 2 ) # shows iterations for each x[]
n <- 2049; x <- seq(-1,1, length.out = n)[-n] ; stopifnot(diff(x) == 1/1024)
plot(x, (lcf <- logcf(x, 2,3, eps=1e-12)), type="l", col=2)
lcR <- logcfR_vec (x, 2,3, eps=1e-12); all.equal(lcf, lcR , tol=0)
lcR.<- logcfR(x, 2,3, eps=1e-12); all.equal(lcf, lcR., tol=0)
all.equal(lcR, lcR., tol=0) # TRUE
all.equal(lcf, lcR., tol=0) # TRUE (x86_64, Lnx)
stopifnot(exprs = {
all.equal(lcf, lcR., tol=1e-14)# seen 0 (!)
all.equal(lcR, lcR., tol=5e-16)# seen 0 above
})
l32 <- curve(logcf(x, 3,2, eps=1e-7), -3, 1, n = 1000)
abline(h=0,v=1, lty=3, col="gray50")
##
plot(y~x, l32, log="y", type="l", main= "logcf(x, i, d) in log-scale",
ylim = c(.01, 10), col=2); abline(v=1, lty=3, col="gray50")
## other (i,d) than the (3,2) needed for log1pmx():
curve(logcfR(x, 5, 4, eps = 1e-5), n=1000, add=TRUE, col = 4)
curve(logcfR(x, 20, 1, eps = 1e-5), n=1000, add=TRUE, col = 5)
curve(logcfR(x, 1/4,1/2, eps = 1e-5), n=1000, add=TRUE, col = 6)
i.d <- cbind(c(2,3), c(5,4), c(20,1), c(1/4, 1/2))
legend("topleft", apply(i.d, 2, \(k) paste0("(i=",k[1],", d=", k[2],")")),
lwd = 2, col = c(2,4:6), bty="n")
Run the code above in your browser using DataLab