Dear R useRs, i have the following code to compute values needed for a contour plot
############################################################ "myContour" <- function(a, b, plist, veca, vecb, dim) { tmpb <- seq(0.5 * b, 1.5 * b, length=dim) tmpa <- seq(0.5 * a, 1.5 * a, length=dim) z <- matrix(0, nrow=dim, ncol=dim) for(i in 1:dim) { for(j in 1:dim) { z[i, j] <- posteriorPdf(a=tmpa[j], b=tmpb[i], plist=plist, veca=veca, vecb=vecb) } } } "posteriorPdf" <- function(a, b, plist, veca, vecb) { res <- sum(plist[, 1] * exp(vecb[, 1] * log(vecb[, 2]) + (vecb[, 1] - 1.0) * log(b) - vecb[, 2] * b - lgamma(vecb[, 1])) * exp(veca[, 1] * log(veca[, 2]) + (veca[, 1] - 1.0) * log(a) - veca[, 2] * a - lgamma(veca[, 1]))) return(res) } plist <- matrix(0, 100, 3) plist[, 1] <- runif(100) veca <- vecb <- matrix(0, 100, 2) veca[, 1] <- seq(20, 50, len=100) veca[, 2] <- seq(10, 20, len=100) vecb[, 1] <- seq(50, 200, len=100) vecb[, 2] <- seq(1000, 400000, len=100) myContour(a=20, b=0.01, plist=plist, veca=veca, vecb=vecb, dim=50) ############################################################ this is part of my other computations which i do with R. Here i recognized, that my functions myContour and posteriorPdf took a long time of my computations. The key to speed this up is to avoid the two for-loops in myContour, i think. I tried a lot to do this with apply or something like that, but i didn't get it. If you have any advice how i can to this computations fast, i would be very thankful, one idea is to use external c-code? best regards Andreas -- ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.